Excelize 是 Go 语言编写的用于操作电子表格办公文档的开源根底库,基于 ISO/IEC 29500、ECMA-376 国际标准。能够应用它来读取、写入由 Microsoft Excel、WPS、Apache OpenOffice、LibreOffice 等办公软件创立的电子表格文档。反对 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格局,高度兼容带有款式、图片 (表)、透视表、切片器等简单组件的文档,并提供流式读写反对,用于解决蕴含大规模数据的工作簿。可利用于各类报表平台、云计算、边缘计算等零碎。自 2016 年开源以来已成为云原生利用尤其是 Go 语言开发者在解决电子表格办公文档时的热门抉择,正在被广泛应用于大型互联网公司、中小企业客户和初创公司。荣获 2022 年中国开源翻新大赛一等奖、入选 2020 Gopher China – Go 畛域明星开源我的项目 (GSP)、2018 年开源中国码云最有价值开源我的项目 GVP (Gitee Most Valuable Project)。
开源代码
GitHub: github.com/xuri/excelize
Gitee: gitee.com/xurime/excelize
中文文档: xuri.me/excelize/zh-hans
2023 年 8 月 28 日,社区正式公布了 2.8.0 版本,该版本蕴含了多项新增性能、谬误修复和兼容性晋升优化。上面是无关该版本更新内容的摘要,残缺的更改列表可查看 changelog。
此版本中最显著的变动包含:
兼容性提醒
- 将导出变量
ErrTableNameLength
重命名为ErrNameLength
- 将导出类型
PaneOptions
重命名为Selection
- 将导出类型
Comment
中的Runs
字段重命名为Paragraph
- 移除了
Style
数据类型中的Lang
字段 - 移除了
ChartTitle
数据类型,应用RichTextRun
类型代替 - 更改
DecimalPlaces
字段的数据类型为指针类型 - 批改了默认点与像素单位转换系数,相干 issue #279 和 #1536
- 批改了
AddShape
函数的签名:将func (f *File) AddShape(sheet, cell string, opts *Shape) error
改为func (f *File) AddShape(sheet string, opts *Shape) error
新增性能
- 新增导出谬误变量
ErrExistsTableName
和ErrorFormControlValue
Options
数据类型中新增ShortDatePattern
,LongDatePattern
,LongTimePattern
和CultureInfo
选项,反对设置长短日期与工夫格局代码,相干 issue #1199- 新增用于示意区域代码的
CultureName
类型枚举 - 新增函数
GetTables
与DeleteTable
反对获取与删除表格,相干 issue #674 和 #1454 - 新增函数
GetStyle
反对获取款式定义,相干 issue #314, #1520 和 #1521 - 反对为单元格的值利用带有占位、对齐、舍入、货币、会计专用和转换选项的数字格局,并反对带有 812 种语言(地位)工夫和日期类型的数字格局,相干 issue #660
- 新增 10 项公式函数: ARRAYTOTEXT, FORECAST, FORECAST.LINEAR, FREQUENCY, INTERCEPT, ODDFYIELD, ODDLPRICE, ODDLYIELD, PROB 和 VALUETOTEXT
- 减少对工作簿保留门路的查看,若门路长度超出限度将返回谬误提醒
- 新增
GetPanes
函数,反对获取窗格和视图选区设置 - 新增 3 项表单控件函数
AddFormControl
、GetFormControls
和DeleteFormControl
, 反对增加次要程度和垂直坐标轴题目,相干 issues #301 和 #1169 - 增加图表函数
AddChart
反对增加次要程度和垂直坐标轴题目,相干 issue #1553 - 增加图表函数
AddChart
反对增加次坐标轴,相干 issue #518 - 增加图表函数
AddChart
反对设置图表富文本题目与图表题目格局,相干 issue #1588 - 通过
AddShape
函数增加形态时,如果给定的形态类型不受反对,将返回异样谬误 - 反对读取带有日本年号数字格局的单元格,相干 issue #1590
- 函数
GetPictures
反对读取带有繁多单元格锚点地位的图片,相干 issue #1585 - 函数
NewConditionalStyle
反对创立带有数字格局与爱护属性的条件格局款式,相干 issue #1610
兼容性晋升
- 增加对带多字节文本的单元格字符长度查看,相干 issue #1517
- 当创立带有反复名称的表格或自定义名称时,将返回谬误异样
- 进步单元格批注文本框大小显示成果在 KingSoft WPS 下的兼容性
- 反对从自定义工作表属性设置中读取列宽度,相干 issue #1536
- 批改外部工作表 XML 部件名称为大小写不敏感以进步兼容性,相干 issue #1591
问题修复
- 修复因计算带有本义 XML 单元格的长度有误导致的,局部状况流式生成工作簿损坏问题,解决 issue #1518, #1519 和 #1530
- 修复带有多行文本的单元格批注文本框大小异样问题
- 修复了局部状况下,读取带有数字格局的文本单元格时,读取后果有误的问题,解决 issue #1523, #1528 和 #1533
- 修复了并发平安函数中存在的竞态问题
- 修复了局部状况下,对与单元格工夫毫秒舍入精度后果有误的问题
- 修复了局部状况下,读取带有 12 小时制数字格局的单元格时,工夫后果有误的问题
- 修复了局部状况下,计算带有 SUMIFS 和 AVERAGEIFS 函数的公式后果有误的问题,解决 issue #1564
- 修复了公式计算引擎中根本算数运算符优先级问题导致的计算结果有误问题,解决 issue #1599
- 修复局部状况下,带有跨工作表单元格援用公式计算结果有误的问题
- 修复局部状况下,删除行后,工作表中的表格调整后果异样的问题,解决 issue #1539
- 反对读取单元格中的多张图片,解决 issue #1548
- 修复局部状况下,因读取图形对象地位有误导致的增加图片后果异样问题,解决 issue #1560
- 删除行列时反对调整公式,修复局部状况下导致的文档损坏问题,解决 issue #1565
- 修复了局部状况下,计算带有 CONCAT 和 CONCATENATE 函数的公式后果有误的问题,解决 issue #1569
- 修复局部状况下,带有嵌套数字类型参数公式的计算结果有误问题,解决 issue #1582
- 修复因外部图形对象计数器有误导致的局部状况下增加图片呈现反复的问题,解决 issue #1584
- 修复因局部状况下读取带有工夫类型数字格局的单元格时,小时有误的问题,解决 issue #1587
- 修复了局部状况下,获取合并单元格区域右下角单元格坐标时呈现的 panic
性能优化
- 优化外部正字表达式的执行速度,相干 issue #1532
- 防止外部字节数组与字符串数据类型变量之间的转换,相干 issue #1541
其余
- Go Modules 依赖模块更新
- 简化了外部变量的申明与谬误返回语句
- 移除了外部带有 Unicode 编码的预设语言数字格局映射表
- 移除了外部
xlsxTabColor
数据类型,应用xlsxColor
代替xlsxTabColor
数据类型 - 单元测试与文档更新,单元测试行覆盖度晋升 0.24%,达到 98.91%
- 蕴含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新