Excelize 开源基础发布 2.8.1 版本,2024 年首个更新
Excelize 是 Go 语言编写的用于操作电子表格办公文档的开源基础库,基于 ISO/IEC 29500、ECMA-376 国际标准。可以使用它来读取、写入由 Microsoft Excel、WPS、Apache OpenOffice、LibreOffice 等办公软件创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写支持,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。
开源代码
GitHub: github.com/xuri/excelize
文档网站: xuri.me/excelize
2024 年 2 月 26 日,社区正式发布了 2.8.1 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,此版本中最显著的变化包括:
兼容性提示
升级至该版本需要您使用的 Go 语言为 1.18 或更高版本,以升级依赖库
golang.org/x/net
将数据类型
HeaderFooterOptions
中的字段AlignWithMargins
和ScaleWithDoc
修改为指针类型移除了未使用的导出类型
ShapeColor
新增功能
新增函数
SetCellUint
支持设置无符号整型数新增函数
GetPictureCells
支持获取图片单元格坐标新增函数
GetConditionalStyle
支持获取条件格式样式定义新增函数
GetHeaderFooter
支持获取工作表页眉页脚控制字符设置新增函数
AddSlicer
支持为表格和数据透视表添加切片器新增函数
GetPivotTables
支持获取数据透视表新增函数
DeletePivotTable
支持删除数据透视表数据类型
PivotTableOptions
中添加了新的字段Name
以支持创建数据透视表时指定自定义数据透视表名称新增 7 项公式函数:DBCS、SEARCH、SEARCHB、TEXT、TEXTAFTER、TEXTBEFORE 和 xlfn.ANCHORARRAY
新增
ChartLineType
枚举类型,以支持设置图表区域边框线型数据类型
Chart
中添加了新的字段Border
以支持设置图表区域边框类型数据类型
ChartLine
中添加了新的字段Type
以支持设置图表线型新增文档对象关系部件名称与命名空间变量
NameSpaceSpreadSheetXR10
、ContentTypeSlicer
、ContentTypeSlicerCache
和SourceRelationshipSlicer
新增扩展资源标识常量
ExtURIPivotCacheDefinition
允许在自定义名称、表格名称和数据透视表名称中使用点字符
删除工作表中的表格时,将保留表格区域全部单元格的值
支持读取带有分数数字格式的单元格
删除图片时,如果图片仅有一处引用,将同时从工作簿内部删除对应的图片文件,以减少生成工作簿的体积并消除由此产生的潜在安全风险
支持为批注框设置自定义宽度和高度
插入或删除行列时,支持更新条件格式、数据验证、自定义名称、图形对象、单元格公式、易失性函数中的单元格坐标引用
新增 6 项新增条件格式类型:“特定文本”、“空值”、“无空值”、“错误”、“无错误”和“发生日期”
公式计算引擎支持计算带有多重负号的单元格公式
复制行时支持复制条件格式与数据验证
设置行高度函数
SetRowHeight
支持通过指定行高度为-1
移除自定义行高度设置当给定的行高度无效时,函数
SetRowHeight
将返回错误提示信息添加图表函数
AddChart
支持设置图表中的数据标签位置添加图表函数
AddChart
支持设置图表区域、绘图区域和数据标记的填充色和透明填充,在Chart
、ChartPlotArea
和ChartMarker
数据类型中添加了Fill
选项添加图表函数
AddChart
支持设置图表坐标轴文字字体、字号和删除线格式数据类型
ChartSeries
中新增了DataLabelPosition
字段,用于指定图表中各数据系列数据标签的位置数据类型
Chart
中新增了BubbleSize
字段,用于设置气泡图和三维气泡图的气泡大小新增导出数据类型
ChartDataLabelPositionType
获取图片单元格函数
GetPictureCells
和获取图片函数GetPictures
支持读取由 Kingsoft WPS™ Office 创建的嵌入单元格图片设置条件格式函数
SetConditionalFormat
支持批量为多个单元格区域设置条件格式重命名工作表时支持更新自定义名称
新增
GetBaseColor
函数,支持读取首选十六进制颜色代码公式计算引擎支持读取日期类型单元格的值
单元格值读取函数支持继承使用
OpenReader
函数打开文档时所指定的Options
选项设置
兼容性提升
提升了对内部带有绝对路径绘图部件工作簿的兼容性
提升了对内部带有浮点型
tabRatio
属性值工作簿部件的兼容性提升了读取带有空的自定义数字格式单元格的兼容性
提升了与不支持默认主题部件命名空间电子表格预览程序的兼容性
提升了单元格批注形状与 KingSoft WPS™ Office 的兼容性
保存工作簿时对内部部件进行排序,以确保在不改变工作簿内容时生成的文件具有一致的哈希值
问题修复
添加对公式函数 MID 和 MIDB 中 num_chars 参数的检查,以防止出现负数导致的 panic
修复部分情况下,公式函数 LEN、LOWER、PROPER、REPT、UPPER 和 IF 的计算结果为空的问题
修复部分情况下,计算公式函数 CHITEST 和 MMULT 时出现 panic 的问题
修复 v2.8.0 中引入的问题,通过创建特殊自定义名称的方式设置打印区域和打印标题时不再返回错误
修复 v2.8.0 中引入的问题,修复了由于内部样式部件中索引颜色和 MRU 颜色缺省值处理有误导致的生成工作簿损坏问题
修复 v2.8.0 中引入的问题,修复了特定情况下读取带有数字格式的单元格结果为空的问题
修复 v2.7.1 中引入的问题,修复了气泡图和三维气泡图中不显示气泡的问题
修复因内部工作表 ID 处理有误导致的特定情况下通过
AutoFilter
函数添加自动过滤器时出现的 panic修复部分情况下在工作表中添加表格导致的工作表损坏问题
修复部分情况下读取带有时间类型数字格式单元格的值有误的问题
支持计算字符型公式单元格的值
修复在带有单元格表格的工作簿中添加表格时,表格 ID 生成有误的问题
修复部分情况下工作簿内容关系部件丢失的问题
升级数字格式表达式解析器,以修复对于带有自定义文本的数字格式表达式格式化结果有误问题
更新了简体中文和繁体中文语言的预设数字格式列表
修复了部分情况下,自定义数字格式索引生成有误的问题
修复通过删除后再添加表格方式更新表格区域范围时出现错误的问题
修复在使用流式读取函数后,所产生的临时文件无法被清理的潜在问题
修复部分情况下公式计算结果有误的问题
修复并发读取单元格的值时出现的竞态问题
修复根据样式索引获取样式定义时,部分样式定义缺失问题
修复部分情况下读取带有科学记数法数字格式单元格的值结果有误的问题
修复部分情况下,读取带有工作表中不含
r
属性的行元素导致的 panic 问题修复获取富文本单元格函数
GetCellRichText
在获取内联富文本时返回错误的问题修复部分情况下,由于共享字符串表索引计算有误导致的设置单元格的值结果有误问题
修复函数
GetConditionalFormats
读取带有“高于平均值”条件格式规则时 panic 的问题修复了删除行之后合并单元格有误的问题
修复了
SetConditionalFormat
函数在创建带有多规则条件格式时,规则优先级有误的问题修复了
GetConditionalFormats
函数无法读取带有渐变填充格式数据条的问题修复了获取样式函数
GetStyle
或获取条件格式样式函数GetConditionalStyle
所返回的小数位数DecimalPlaces
字段值有误问题修复了使用
CalcCellValue
函数时,开启RawCellValue
选项失效的问题
性能优化
提高了添加与删除数据透视表和图片的性能
降低了修剪单元格时的内存占用
其他
Go Modules 依赖模块更新
单元测试与文档更新
包含简体中文、繁体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新,新增葡萄牙语版本文档
致谢
感谢 Excelize 的所有贡献者,以下是为此版本提交代码的贡献者列表:
fnickels (Francis Nickels III)
m12r (Matthias Endler)
Abdelaziz-Ouhammou
Juneezee (Eng Zer Jun)
yicixin (壹次心)
TeeRenJing (rjtee)
phperic (magicrabbit)
kjushka (Anton Petrov)
krstak (Marko Krstic)
lpxxn (Nick)
ByteFlyCoding
yangliyl (Yang Li)
15535382838
TajangSec (Tajang)
lujin1 (lujin)
parkoo (Tian)
ZhangXiao1024 (ZX)
zcgly
bramvbilsen (Bram Vanbilsen)
user65536
tianaiyouqing (天爱有情)
cuishuang (cui fliter)
CooolNv (Xuesong)
yuegu520
oneweek20169902 (li)
3zmx
327674413
melf-xyzh (MELF 晓宇)
L4nn15ter
rememberher (Jerry)
ooooooobh (cherry)
xxxwang1983
funa12
coolbit
taitaking (zhukewen)
kewenof
ivekkairi (Vivek Kairi)
edwardfward (Ed)
版权声明: 本文为 InfoQ 作者【xuri】的原创文章。
原文链接:【http://xie.infoq.cn/article/51cb794371ab844b9f9e504b4】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论