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

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: Excelize 是 Go 语言编写的用于操作电子表格办公文档的开源基础库,2024年2月26日,社区正式发布了 2.8.1 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。

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 中的字段 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 依赖模块更新
  • 单元测试与文档更新
  • 包含简体中文、繁体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新,新增葡萄牙语版本文档
目录
相关文章
|
JavaScript
Layui数据表格嵌套文件上传按钮
Layui数据表格嵌套文件上传按钮
361 0
|
6月前
|
SQL 运维 监控
高效定位 Go 应用问题:Go 可观测性功能深度解析
为进一步赋能用户在复杂场景下快速定位与解决问题,我们结合近期发布的一系列全新功能,精心梳理了一套从接入到问题发现、再到问题排查与精准定位的最佳实践指南。
|
消息中间件 C语言 RocketMQ
消息队列 MQ操作报错合集之出现"Connection reset by peer"的错误,该如何处理
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
11月前
|
存储 搜索推荐 数据库
运用LangChain赋能企业规章制度制定:深入解析Retrieval-Augmented Generation(RAG)技术如何革新内部管理文件起草流程,实现高效合规与个性化定制的完美结合——实战指南与代码示例全面呈现
【10月更文挑战第3天】构建公司规章制度时,需融合业务实际与管理理论,制定合规且促发展的规则体系。尤其在数字化转型背景下,利用LangChain框架中的RAG技术,可提升规章制定效率与质量。通过Chroma向量数据库存储规章制度文本,并使用OpenAI Embeddings处理文本向量化,将现有文档转换后插入数据库。基于此,构建RAG生成器,根据输入问题检索信息并生成规章制度草案,加快更新速度并确保内容准确,灵活应对法律与业务变化,提高管理效率。此方法结合了先进的人工智能技术,展现了未来规章制度制定的新方向。
418 3
ly~
|
11月前
|
数据可视化 BI API
除了 OpenGL,还有哪些常用的图形库可以在 C 语言中使用?
除了OpenGL,C语言中还有多个常用的图形库:SDL,适合初学者,用于2D游戏和多媒体应用;Allegro,高性能,支持2D/3D图形,广泛应用于游戏开发;Cairo,矢量图形库,支持高质量图形输出,适用于数据可视化;SFML,提供简单接口,用于2D/3D游戏及多媒体应用;GTK+,开源窗口工具包,用于创建图形用户界面。这些库各有特色,适用于不同的开发需求。
ly~
2512 4
Echarts渐变折线图的设置解决方案
Echarts渐变折线图的设置解决方案
226 0
|
数据采集 缓存 IDE
Go中遇到http code 206和302的获取数据的解决方案
文章提供了解决Go语言中处理HTTP状态码206(部分内容)和302(重定向)的方案,包括如何获取部分数据和真实请求地址的方法,以便程序员能快速完成工作,享受七夕时光。
792 0
Go中遇到http code 206和302的获取数据的解决方案
|
Java Linux 开发工具
eft搭建详细步骤!
1、安装vmware 2、下载合适版本的centos并安装 稍后安装操作系统(安装第二个时把安装程序光盘映像文件ISO清空) 自定义硬件-内存4G-处理器2X2-网络适配器NAT-CD/DVD使用ISO映像 网络和主机名:主机名设置、开启以太网(安装好使用ip addr查看ip地址1-9-2开头的) root密码设置 3、安装xshell 使用ip addr看ip然后连接上 4、安装jdk yum search java|grep jdk yum install -y java-1.8.0-openjdk*
243 2
|
小程序
小程序:official-account公众号关注组件
小程序:official-account公众号关注组件
494 0
|
JavaScript 前端开发
如何将你的项目上传到 npm
如何将你的项目上传到 npm
780 0