Excelize 开源基础库 2.8.1 版本发布, 2024 年首个更新

Excelize 开源基础库 2.8.1 版本发布, 2024 年首个更新

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)。

开源代码

GitHub: github.com/xuri/excelize
中文文档: xuri.me/excelize/zh-hans

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

兼容性提示

  • 升级至该版本需要您使用的 Go 语言为 1.18 或更高版本,以升级依赖库 golang.org/x/net
  • 将数据类型 HeaderFooterOptions 中的字段 AlignWithMarginsScaleWithDoc 修改为指针类型
  • 移除了未使用的导出类型 ShapeColor

新增功能

  • 新增函数 SetCellUint 支持设置无符号整型数
  • 新增函数 GetPictureCells 支持获取图片单元格坐标
  • 新增函数 GetConditionalStyle 支持获取条件格式样式定义
  • 新增函数 GetHeaderFooter 支持获取工作表页眉页脚控制字符设置
  • 新增函数 AddSlicer 支持为表格和数据透视表添加切片器
  • 新增函数 GetPivotTables 支持获取数据透视表
  • 新增函数 DeletePivotTable 支持删除数据透视表
  • 数据类型 PivotTableOptions 中添加了新的字段 Name 以支持创建数据透视表时指定自定义数据透视表名称
  • 新增 7 项公式函数:DBCS、SEARCH、SEARCHB、TEXT、TEXTAFTER、TEXTBEFORE 和 xlfn.ANCHORARRAY
  • 新增 ChartLineType 枚举类型,以支持设置图表区域边框线型
  • 数据类型 Chart 中添加了新的字段 Border 以支持设置图表区域边框类型
  • 数据类型 ChartLine 中添加了新的字段 Type 以支持设置图表线型
  • 新增文档对象关系部件名称与命名空间变量 NameSpaceSpreadSheetXR10ContentTypeSlicerContentTypeSlicerCacheSourceRelationshipSlicer
  • 新增扩展资源标识常量 ExtURIPivotCacheDefinition
  • 允许在自定义名称、表格名称和数据透视表名称中使用点字符
  • 删除工作表中的表格时,将保留表格区域全部单元格的值
  • 支持读取带有分数数字格式的单元格
  • 删除图片时,如果图片仅有一处引用,将同时从工作簿内部删除对应的图片文件,以减少生成工作簿的体积并消除由此产生的潜在安全风险
  • 支持为批注框设置自定义宽度和高度
  • 插入或删除行列时,支持更新条件格式、数据验证、自定义名称、图形对象、单元格公式、易失性函数中的单元格坐标引用
  • 新增 6 项新增条件格式类型:“特定文本”、“空值”、“无空值”、“错误”、“无错误”和“发生日期”
  • 公式计算引擎支持计算带有多重负号的单元格公式
  • 复制行时支持复制条件格式与数据验证
  • 设置行高度函数 SetRowHeight 支持通过指定行高度为 -1 移除自定义行高度设置
  • 当给定的行高度无效时,函数 SetRowHeight 将返回错误提示信息
  • 添加图表函数 AddChart 支持设置图表中的数据标签位置
  • 添加图表函数 AddChart 支持设置图表区域、绘图区域和数据标记的填充色和透明填充,在 ChartChartPlotAreaChartMarker 数据类型中添加了 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)

欢迎加入 Slack 频道、Telegram 群组 或技术交流群 DingTalk Group ID: 30047129 QQ Group ID: 207895940

Excelize 技术交流群

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/492040.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一元函数微分学——刷题(21

目录 1.题目:2.解题思路和步骤:3.总结:小结: 1.题目: 2.解题思路和步骤: 出现式子: 就能说明: 接下来就是洛必达一下得到二次导的定义式: 3.总结: 出现式子…

输电线路微波覆冰监测装置助力电网应对新一轮寒潮

2月19日起,湖南迎来新一轮寒潮雨雪冰冻天气。为做好安全可靠的供电准备,国网国网湘潭供电公司迅速启动雨雪、覆冰预警应急响应,采取“人巡机巡可视化巡视”的方式,对输电线路实施三维立体巡检。该公司组织员工对1324套通道可视化装…

[AutoSar]BSW_Com03 DBC详解 (一)

目录 关键词平台说明一、DBC 定义1.1 相关工具 二、主要组成部分介绍2.1 Networks2.2 ECUs2.3 Network nodes2.4 messages2.5 signal2.6 Value Tables 三、主要组成部分关系图 关键词 嵌入式、C语言、autosar、OS、BSW 平台说明 项目ValueOSautosar OSautosar厂商vector &am…

自定义搭建管理系统

最近使用自己搭建的脚手架写了一个简易管理系统,使用webpackreactantd,搭建脚手架参考: 使用Webpack5搭建项目(react篇)_babel-preset-react-app-CSDN博客 搭建的思路: 1. 基建布局,使用antd的…

【Python】Windows本地映射远程Linux服务器上的端口(解决jupyter notebook无法启动问题)

创作日志: 学习深度学习不想在本地破电脑上再安装各种软件,我就用实验室的服务器配置环境,启动jupyter notebook时脑子又瓦特了,在自己Windows电脑上打开服务器提供的网址,那肯定打不开啊,以前在其它电脑上…

matlab|基于DistFlow潮流的配电网故障重构(输入任意线路)

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序采用适用于辐射状网络的DistFlow潮流模型,可输入任意故障线路编号,得到优化重构结果。这个程序是配电网故障重构可视化matlabyalmip的升级版,原来的程序是以电压质量作…

[JavaWeb玩耍日记]Mybatis快速入门与增删改查

目录 模块一:快速入门 1.创建数据库,插入数据 2.创建maven模块后,需要导入的依赖有哪些? 3.想要输出查询到的数据(包括日志打印),需要创建哪些文件? 4.如何放置UserMapper接口与User类? 5.…

【嵌入式学习】IO进程线程day02.24

一、思维导图 二、习题 #define MSGSIZE sizeof(struct msgbuf)-sizeof(long) int main(int argc, const char *argv[]) {//创建子进程pid_t pidfork();//在父进程实现读功能if(pid>0){//1、创建key值key_t key 0;if((keyftok("/", k)) -1){perror("ftok …

多模态表征中的里程碑—CLIP及中文版Chinese-CLIP:理论揭秘、代码微调与论文阅读 (视觉与语义的奇妙共舞~)

我之前一直在使用CLIP/Chinese-CLIP,但并未进行过系统的疏导。这次正好可以详细解释一下。相比于CLIP模型,Chinese-CLIP更适合我们的应用和微调,因为原始的CLIP模型只支持英文,对于我们的中文应用来说不够友好。Chinese-CLIP很好地…

基于插件实现RabbitMQ“延时队列“

1.官网下载 在添加链接描述下载rabbitmq_delayed_message_exchange 插件,本文以v3.10.0为例 1.1.上传安装包 scp /Users/hong/资料/rabbitmq_delayed_message_exchange-3.10.0.ez root10.211.55.4:/usr/local/software1.2.将文件移入RabbitMQ的安装目录下的plugins目录 m…

C++中的左值和右值

目录 一. 左值和右值的概念 1. 左值 1.1 可修改的的左值 1.2 不可修改的左值 右值 二. 左值引用和右值引用 1. 左值引用 2. 右值引用 主要用途 1. 移动语义 2. 完美转发 2.1 引用折叠 2.2 std::forward 一. 左值和右值的概念 什么是左值和右值 1. 左值 左值是一个表示…

ROS 2的前世今生 | ROS 2学习笔记

自2015年底首次踏入ROS(Robot Operating System)的世界以来,我在机器人领域的旅程已近九年。这段历程始于团队几位志同道合的朋友在业余时间的自发学习,逐渐演变成成立了一个致力于英特尔硬件平台与ROS框架集成优化的专业团队&…