Excelize 开源基础库 2.9.0 版本正式发布

xuri · · 15 次点击 · 开始浏览    置顶

<p align="center"><img src="https://github.com/user-attachments/assets/03fbbd99-9d09-465f-9423-9feb31dfc410" width="440" alt="Excelize 开源基础库 2.9.0 版本正式发布"></p> Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Excel、WPS、OpenOffice 等办公软件创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写支持,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。自 2016 年开源以来已成为云原生应用尤其是 Go 语言开发者在处理电子表格办公文档时的热门选择,正在被广泛应用于大型互联网公司、中小企业客户和初创公司。入选 2023 开源创新榜优秀开源项目、荣获 2022 年中国开源创新大赛一等奖、2020 Gopher China - Go 领域明星开源项目 (GSP)、2018 年开源中国码云最有价值开源项目 GVP (Gitee Most Valuable Project)。 ## 开源代码 **GitHub:** [github.com/xuri/excelize](https://github.com/xuri/excelize) **中文文档:** [xuri.me/excelize/zh-hans](https://xuri.me/excelize/zh-hans) 2024 年 10 月 15 日,社区正式发布了 2.9.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,此版本中最显著的变化包括: ### 兼容性提示 - 将数据类型 `ConditionalFormatOptions` 中的字段 `Format` 修改为指针类型,解决 issue #1867 ### 新增功能 - 新增函数 `DeleteSlicer` 和 `GetSlicers` 支持删除和获取切片器,相关 issue #810 - 新增函数 `MoveSheet` 支持移动工作表在工作簿中的位置,相关 issue #1076 - 数据类型 `GraphicOptions` 中添加了新的字段 `AutoFitIgnoreAspect` 支持添加图片时以忽略比例的方式填充单元格 - 数据类型 `ChartAxis` 中添加了新的字段 `TickLabelPosition` 以支持设置图表坐标轴标签的位置 - 数据类型 `PivotTableField` 中添加了新的字段 `ShowAll`、`InsertBlankRow` 和 `NumFmt` - 数据类型 `PivotTableOptions` 中添加了新的字段 `ClassicLayout`、`FieldPrintTitles` 和 `ItemPrintTitles` - 新增 2 项枚举类型 `ChartTickLabelPositionType` 和 `PictureInsertType` - 新增举类型值 `ChartLineUnset` - 新增 4 项新增扩展资源标识常量 `ExtURIDataField`、`ExtURIPivotField`、`ExtURIPivotFilter` 和 `ExtURIPivotHierarchy` - 新增导出错误变量 `ErrPivotTableClassicLayout` - 函数 `MergeCell` 合并单元格时将清除除合并区域左上角单元格之外其他单元格的值 - 函数 `AddDataValidation`、`DeleteDataValidation` 和 `GetCellStyle` 支持并发安全调用,相关 issues #1825 和 #1903 - 获取数据验证函數 `GetDataValidations` 支持获取存储于扩展列表中的数据验证规则,相关 issue #1835 - 设置工作表名称函数 `SetSheetName` 支持大小写敏感,相关 issue #1856 - 函数 `GetPictureCells` 和 `GetPictures` 支持获取通过 IMAGE 公式添加的图片和内部以绝对路径形式存储的图片 - 在 `GraphicOptions` 数据类型中新增了 `AutoFitIgnoreAspect` 选项,支持以忽略原始纵横比例的方式将图片尺寸填充单元格 - 设置超链接函数 `SetCellHyperLink` 支持指定 linkType 为 `None` 以删除单元格超链接,相关 issue #1940 - 添加图表函数 `AddChart` 支持创建带有多个相同图表类型的组合图表,相关 issue #1940 - 添加图表函数 `AddChart` 支持设置散点图线型 - 使用 `AddPivotTable` 函数创建数据透视表时,若数据源引用的单元格范围内首行单元格的值为空,将返回错误,相关 issue #1945 - 读取单元格的值时,支持应用带有语言/地区标签和 ID 的数字格式表达式 - 读取单元格的值时,支持为时间和时间间隔应用动态数字格式,相关 issue #2004 - 新增公式函数:DOLLAR ### 兼容性提升 - 提升了读取带有对齐格式的数字格式单元格的兼容性,解决 issue #1847 - 提升了对内部带有命名空间前缀的工作表部件的兼容性,解决 issue #1886 - 提升了对内部带有绝对路径多媒体部件的兼容性,解决 issue #1888 ### 问题修复 - 修复 v2.8.1 中引入的问题,自动过滤器在 LibreOffice 中失效的问题,解决 issue #1830 - 修复 v2.8.1 中引入的问题,删除行列时支持调整带有多重单元格引用的数据验证,解决 issue #1831 - 修复 v2.8.1 中引入的问题,修复了复制行时,如果工作表中带有多重单元格引用的条件格式或数据验证,将返回错误的问题 - 修复 v2.8.1 中引入的问题,修复了多次保存时单元格的值设置有误的问题,解决 issue #1906 - 修复 v2.8.1 中引入的问题,修复了迷你图预期外地出现在多张工作表中的问题,解决 issue #1910 - 公式计算函数 `CalcCellValue` 支持计算带有矩阵参数的公式函数 ISNUMBER、OR 和 FIND,解决 issue #1819 - 修复部分情况下公式计算函数 `CalcCellValue` 计算结果数值舍入精度有误的问题,解决 issue #1851 - 修复计算函数 `CalcCellValue` 对带有 XIRR 和 XNPV 的公式计算结果有误问题,解决 issue #1989 - 修复部分情况下 `RemoveCol` 函数返回错误的问题,解决 issue #1829 - 修复部分公式计算函数 DATE 的计算结果数据类型有误的问题,解决 issue #1833 - 修复读取内部工作表部件中缺少 `r` 属性的工作簿时,出现 panic 的问题 - 修复部分情况下,插入行或列后,单元格公式中的括号出现丢失的问题,解决 issue #1861 - 修复部分情况下,数据验证规则中的部分字符被不正确地转义问题 - 修复流式写入单元格的值时,部分字符无法正确显示的问题,解决 issue #1865 - 保存工作簿时将对内部部件排序,以获得一致的文件哈希值和正确的互联网媒体类型,解决 issue #1889 - 修复添加图表函数 `AddChart` 在组合图表中设置坐标轴格式失效的问题,解决 issue #1921 - 修复添加图表函数 `AddChart` 设置图表主坐标轴标题位置有误的问题 - 修复添加图表函数 `AddChart` 设置垂直次坐标轴标题无法被正常显示的问题,解决 issue #1926 - 修复添加图表函数 `AddChart` 设置折线图线型无效的问题 - 修复部分情况下获取数据透视表函数 `GetPivotTables` 返回数据透视表的数据源范围有误的问题,解决 issue #1937 - 修复获取样式函数 `GetStyle` 在读取不包含 `sysClr` 属性的工作簿时出现 panic 的问题,解决 issue #1963 - 修复获取单元格富文本函数 `GetCellRichText` 在读取不包含共享字符串表索引单元格时返回错误的问题,解决 issue #1999 - 修复使用 `SetSheetVisible` 函数读取不含视图属性的工作表时出现 panic 的问题,解决 issue #1969 - 修复部分情况下读取带有数字格式单元格的值时,百分比符号丢失的问题,解决 issue #1942 - 修复带有负数值的散点图水平坐标轴不现实的问题 - 修复因删除行列而调整图片、图表、形状等绘图对象位置后,与形状相关联的宏丢失的问题,解决 issue #1957 - 修复部分情况下删除列后,条件格式丢失的问题,解决 issue #1968 - 修复部分情况下读取数值单元格的值精度有误的问题,解决 issue #1979 - 支持设置单元格的值为 IEEE 754 “非数字”值或无穷大,解决 issue #119 和 #1955 ### 性能优化 - 修复 v2.8.0 中引入的性能下降和内存占用增加问题 - 降低了按行获取全部单元格的值函数 `GetRows` 的内存占用,相关 issue #1874 - 优化了索引转列名函数 `ColumnNumberToName` 的性能,最多降低内存占用 50%,耗时最多减少 50% ### 其他 - Go Modules 依赖模块更新 - 单元测试与文档更新 - 包含阿拉伯语、德语、英语、西班牙语、法语、日语、韩语、葡萄牙语、俄语、简体中文和繁体中文的[多国语言文档网站](https://xuri.me/excelize)更新,新增意大利语文档 ### 致谢 感谢 Excelize 的所有贡献者,以下是为此版本提交代码的贡献者列表: - mirgong (helloWorld) - YueChenXu-Kimi (岳晨旭) - JackMin1314 (陈王) - paolobarbolini (Paolo Barbolini) - iEvan-lhr (Evan lu) - yetyear (yeahyear) - ha5ky (hu5ky) - lizhichao (vic) - realzuojianxiang (realzuojianxiang) - msackman (Matthew Sackman) - yyle88 (yangyile-yyle88) - yunkeweb (yunkeweb) - iraj720 (Nima) - jianxinhou - barlevd - 18409615759 (nna) - qijinkui (xiaokui) - user1121114685 (联盟少侠) - wangsongyan - vsemichev (Vovka Morkovka) - zhayt (Aybek) - ShowerBandV (ShowerBandV) - imink (Patrick Wang) - samkeke (wxy) - pjh591029530 - zhangyimingdatiancai - wanghaochen2024 - centurion-hub - peng (Zhang Zhipeng) - slashdotdash (Ben Smith) - ArcholSevier - liuwangchao - Zncl2222 (Jian Yu, Chen) ### 《Excelize权威指南》新书发布 <a href="https://item.jd.com/14710146.html" title="在京东购买《Excelize 权威指南》图书" target="_blank"><p align="center"><img src="https://xuri.me/excelize/images/book.png" width="300" alt="Excelize 开源基础库 2.8.1 版本发布, 2024 年首个更新"></p></a> 《Excelize权威指南》不仅介绍了 Excelize 库的基本使用方法,还深入探索了高级特性和应用场景。全书共分五个篇章:入门指南、基础库设计概览、深入 Excelize、高性能流式读写技术以及实践应用。通过这本书,你将学会如何利用 Go 语言和 Excelize 库,实现 Excel 文件的自动化处理、复杂数据分析以及报表生成等任务。 你将不再受限于 Excel 的传统操作方式,而是能够通过编程的方式,解锁 Excel 新境界,创造出更加智能、高效的数据处理解决方案。 #### 欢迎加入技术交流群 <p align="center"><img src="https://xuri.me/excelize/zh-hans/images/group@2x.png" width="440" alt="Excelize 技术交流群" class="img-responsive" data-action="zoom"></p>

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

15 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传