Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片 (表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。入选 2020 Gopher China - Go 领域明星开源项目 (GSP)、2018 年开源中国码云最有价值开源项目 GVP (Gitee Most Valuable Project),目前已成为 Go 语言最受欢迎的 Excel 文档基础库。
开源代码
GitHub: github.com/xuri/excelize
Gitee: gitee.com/xurime/excelize
中文文档: 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 依赖模块更新
-
单元测试与文档更新
-
包含阿拉伯语、德语、英语、西班牙语、法语、日语、韩语、葡萄牙语、俄语、简体中文和繁体中文的多国语言文档网站更新,新增意大利语文档
(责任编辑:IT) |