excelize 开源基础库 2.9.0 版本正式发布 | go 技术论坛-江南app体育官方入口

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:

中文文档:

2024 年 10 月 15 日,社区正式发布了 2.9.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,此版本中最显著的变化包括:

兼容性提示

  • 将数据类型 conditionalformatoptions 中的字段 format 修改为指针类型,解决 issue #1867

新增功能

  • 新增函数 deleteslicergetslicers 支持删除和获取切片器,相关 issue #810
  • 新增函数 movesheet 支持移动工作表在工作簿中的位置,相关 issue #1076
  • 数据类型 graphicoptions 中添加了新的字段 autofitignoreaspect 支持添加图片时以忽略比例的方式填充单元格
  • 数据类型 chartaxis 中添加了新的字段 ticklabelposition 以支持设置图表坐标轴标签的位置
  • 数据类型 pivottablefield 中添加了新的字段 showallinsertblankrownumfmt
  • 数据类型 pivottableoptions 中添加了新的字段 classiclayoutfieldprinttitlesitemprinttitles
  • 新增 2 项枚举类型 chartticklabelpositiontypepictureinserttype
  • 新增举类型值 chartlineunset
  • 新增 4 项新增扩展资源标识常量 exturidatafieldexturipivotfieldexturipivotfilterexturipivothierarchy
  • 新增导出错误变量 errpivottableclassiclayout
  • 函数 mergecell 合并单元格时将清除除合并区域左上角单元格之外其他单元格的值
  • 函数 adddatavalidationdeletedatavalidationgetcellstyle 支持并发安全调用,相关 issues #1825 和 #1903
  • 获取数据验证函數 getdatavalidations 支持获取存储于扩展列表中的数据验证规则,相关 issue #1835
  • 设置工作表名称函数 setsheetname 支持大小写敏感,相关 issue #1856
  • 函数 getpicturecellsgetpictures 支持获取通过 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 依赖模块更新
  • 单元测试与文档更新
  • 包含阿拉伯语、德语、英语、西班牙语、法语、日语、韩语、葡萄牙语、俄语、简体中文和繁体中文的更新,新增意大利语文档

致谢

感谢 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权威指南》新书发布

《excelize权威指南》不仅介绍了 excelize 库的基本使用方法,还深入探索了高级特性和应用场景。全书共分五个篇章:入门指南、基础库设计概览、深入 excelize、高性能流式读写技术以及实践应用。通过这本书,你将学会如何利用 go 语言和 excelize 库,实现 excel 文件的自动化处理、复杂数据分析以及报表生成等任务。

你将不再受限于 excel 的传统操作方式,而是能够通过编程的方式,解锁 excel 新境界,创造出更加智能、高效的数据处理江南app体育官方入口的解决方案。

欢迎加入技术交流群

excelize 技术交流群

本作品采用《cc 协议》,转载必须注明作者和本文链接
《excelize权威指南》作者
xuri
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
作者 @ 《excelize权威指南》
文章
34
粉丝
32
喜欢
76
收藏
51
排名:431
访问:2.1 万
博客标签
社区赞助商
网站地图