Excelize 2.5.0 正式发布,这些新增功能值得关注

简介: Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,2022年1月3日,社区正式发布了 2.5.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。

github.com/xuri/excelize

Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLSX / XLSM / XLTM 等多种文档格式,高度兼容带有样式、图片(表)、透视表、切片器等复杂组件的文档,并提供流式读写 API,用于处理包含大规模数据的工作簿。可应用于各类报表平台、云计算、边缘计算等系统。入选 2020 Gopher China - Go 领域明星开源项目(GSP)、2018 年开源中国码云最有价值开源项目 GVP (Gitee Most Valuable Project),目前已成为 Go 语言最受欢迎的 Excel 文档基础库。

开源代码

GitHub: github.com/xuri/excelize

Gitee: gitee.com/xurime/excelize

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

2022年1月3日,社区正式发布了 2.5.0 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看 changelog。

此版本中最显著的变化包括:

兼容性提示

  • 打开已有工作簿或在获取行迭代器后,需要调用对应的 Close 函数关闭工作簿和数据流
  • 修改 ReadZipReader 为 File 的实现, 支持通过选项指定解压至内存或文件系统
  • 移除了不必要的导出变量 XMLHeader,可使用 encoding/xml 包的 xml.Header 代替
  • 移除了不再使用的导出变量 ErrToExcelTime

新增功能

  • 新增 API: SetRowStyle 支持设置整行样式, 相关 issue #990
  • 新增 API: GetCellType 支持获取单元格数据类型, 相关 issue #417 和 #520
  • 新增 API: SetAppProps 和 GetAppProps 支持设置与获取工作簿应用程序属性, 相关 issue #1095
  • GetCellValue, GetRows, GetCols, Rows 和 Cols 支持指定是否读取单元格原始值而不应用数字格式表达式, 相关 issue #621
  • 新增 95 项公式函数: ACCRINT, ACCRINTM, ADDRESS, AMORDEGRC, AMORLINC, AVEDEV, AVERAGEIF, CHIDIST, CONFIDENCE, CONFIDENCE.NORM, COUNTIF, COUNTIFS, COUPDAYBS, COUPDAYS, COUPDAYSNC, COUPNCD, COUPNUM, COUPPCD, DATEVALUE, DAY, DAYS, DELTA, DEVSQ, DISC, DURATION, ERF, ERF.PRECISE, ERFC, ERFC.PRECISE, GEOMEAN, GESTEP, IFNA, IFS, INDEX, INTRATE, ISFORMULA, ISLOGICAL, ISREF, ISOWEEKNUM, MATCH, MAXA, MAXIFS, MDURATION, MINIFS, MINUTE, MONTH, ODDFPRICE, PERCENTILE.EXC, PERCENTRANK.EXC, PERCENTRANK.INC, PERCENTRANK, PRICE, PRICEDISC, PRICEMAT, PV, QUARTILE.EXC, RANK, RANK.EQ, RATE, RECEIVED, RRI, SHEETS, SLN, STANDARDIZE, STDEV.P, STDEVP, SWITCH, SYD, TBILLEQ, TBILLPRICE, TBILLYIELD, TEXTJOIN, TIME, TRANSPOSE, TRIMMEAN, VALUE, VAR, VAR.S, VARA, VARPA, VDB, WEEKDAY, WEIBULL, WEIBULL.DIST, XIRR, XLOOKUP, XNPV, XOR, YEAR, YEARFRAC, YIELD, YIELDDISC, YIELDMAT, Z.TEST, ZTEST, 相关 issue #65 和 #1002
  • 公式计算引擎支持嵌套 IF 函数, 相关 issue #987
  • 公式计算引擎支持共享公式, 相关 issue #844
  • 公式计算引擎支持文本比较运算, 相关 issue #998
  • 支持在数据验证中使用公式, 相关 issue #1012
  • 支持文档压缩比限制,避免潜在的安全风险
  • SetCellFormula 支持设置共享公式
  • UpdateLinkedValue 在清除单元格计算缓存时将跳过 macro sheet, 相关 issue #1014
  • 修复部分情况下,由于内部依赖关系计算错误导致的 AddPicture 重复创建图片的问题, 相关 issue #1017
  • AddShape 支持设置形状轮廓线条宽度, 相关 issue #262
  • 新增文档打开选项 UnzipXMLSizeLimit 以支持指定打开每个工作表以及共享字符表时的内存解压上限
  • 创建样式时,若给定的自定义数字格式无效,将返回错误提示,相关 issue #1028
  • 流式写入现已支持设置行样式
  • 流式写入器将为时间类型单元格创建时间数字格式样式,相关 issue #1107
  • 支持设置数据透视表报表布局“以压缩形式显示”或“以大纲形式显示”, 相关 issue #1029
  • 行/列迭代器支持获取当前行/列序号和行/列总数, 相关 issue #1054
  • 使用 time.Time 类型参数进行单元格赋值时,支持时区位置, 相关 issue #1069
  • 新增导出 7 项错误信息,以便开发者可根据不同的错误类型进行采取相应处理

兼容性提升

  • 提升与内部带有 r="0" 属性工作表的兼容性
  • 保留 XML 控制字符
  • 提升样式设置与 Apple Numbers 的兼容性, 相关 issue #1059
  • 页眉页脚字符数限制兼容多字节字符, 相关 issue #1061
  • 设置单元格时将保留水平制表符, 相关 issue #1108

问题修复

  • 修复部分情况下删除数据验证失败的问题, 解决 issue #979
  • 修复部分情况下设置数据验证下拉列表失败的问题, 解决 issue #986
  • 修复公式计算引擎 LOOKUP 函数部分情况下计算结果错误的问题, 解决 issue #994
  • 修复公式计算引擎 LOOKUP 仅支持完全匹配的问题, 解决 issue #997
  • 修复公式计算引擎百分比计算错误的问题, 解决 issue #993
  • 修复特定情况下单元格读取异常导致的 panic
  • 修复设置“后 N 项”条件格式失败的问题
  • 修复部分情况下时间解析错误的问题, 解决 issue #1026 和 #1030
  • 修复科学记数法数字格式的单元格值解析异常的问题,解决 issue #1027
  • 修复部分情况下浮点型数据读取异常的问题,解决 issue #1031
  • 修复部分情况下删除工作表失败的问题
  • 修复内建时间数字格式解析异常问题,解决 issue #1060
  • 修复部分情况下新建样式时返回样式 ID 异常的问题
  • 修复部分情况下删除行列后合并单元格区域异常的问题

性能优化

  • 合并单元格性能大幅提升,耗时降低 90%
  • 提高流式读取性能,当内部 XML 较大时,将共享字符串表解压缩到系统临时文件,内存使用量减少约 60%, 相关 issue #109
  • 优化读取工作表列表性能
  • 优化设置列样式存储,缩小生成的文档体积,解决 issue #1057

其他

  • Go Modules 依赖模块更新
  • 单元测试与文档更新
  • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
目录
相关文章
|
6月前
|
人工智能 弹性计算 IDE
使用Hermes Agent与Claude Code构建AI开发团队
阿里云推出Hermes Agent×Claude Code协同开发方案:Hermes作为智能主控,负责需求分析、任务拆解与经验沉淀;Claude Code专注高质量编码执行。二者构建“技术主管+资深工程师”式AI团队,支持一键部署于DevBox,实现战略规划与战术执行闭环。
|
18天前
|
弹性计算 小程序 测试技术
阿里云轻量应用服务器多少钱一年?2026年付月付价格全解析
综合来看,2026年阿里云轻量应用服务器租用价格覆盖从24元/月到234元/月的月付区间,以及38元/年到1599元/年的年付档位,核心优势在于200M峰值带宽与不限流量的套餐模式,以及低至38元/年的入门门槛。个人开发者或学生优先选择2核2G的38元秒杀款或68元常规款,低成本满足学习、测试与个人项目需求;中小企业可根据业务负载选择2核4G的379元或4核8G的1159元配置,兼顾性能与成本;跨境业务用户直接选择海外或香港地域的月付套餐,24元起即可免备案部署。建议在采购前先通过CLI或官网价格计算器核算不同付费周期下的总成本,结合业务负载与运行周期选择最契合的配置与计费方式,避免无效支出,
320 2
|
2月前
|
弹性计算 人工智能 Linux
阿里云轻量应用服务器2核2G价格:38元/68元/79元/459元四档差异拆解,不同身份权益全梳理
本文完整拆解阿里云轻量应用服务器2核2G的四档定价逻辑,明确38元、68元、79元、459元分别对应的新用户、产品新用户与老用户身份判定规则,同步梳理抢购时间窗口与高成功率上手技巧,补充99元、199元支持长期同价续费的ECS替代方案,帮助不同身份的用户精准匹配高性价比的上云选型,避免不必要的成本浪费。
|
2月前
|
存储 人工智能 缓存
【新版】阿里云 百炼大模型平台 产品功能介绍及配置价格表
大模型应用开发链路包含模型选型、推理调用、数据集处理、模型调优、知识库构建、智能体编排、业务上线、成本管控等大量环节,如果分散在多个不同平台完成整套流程,会带来账号管理复杂、接口不统一、数据流转繁琐、成本难以统计等诸多痛点。阿里云百炼是面向开发者与企业打造的一站式大模型开发服务平台,把模型调用、数据集管理、模型微调、专属部署、向量知识库、智能体应用、MCP工具广场、用量计费管控全部整合到统一控制台,既提供开箱即用的海量预训练模型,也支持开发者完成自定义模型优化与业务应用搭建,降低AI应用从原型验证走向正式业务的技术门槛。
484 0
|
4月前
|
人工智能 监控 网络安全
告别 Xshell、MobaXterm!NyaTerm 开源终端把 SSH、SFTP、AI、Docker 全装进一个工具
NyaTerm 是一款基于 Tauri+Rust+React 的开源终端客户端,集成 SSH/SFTP、Docker、GPU/NPU 监控、端口转发、跳板机、OTP 认证、AI 助手与云同步等功能,打造一体化服务器管理与开发工作空间。(239字)
797 0
|
机器学习/深度学习 人工智能 JSON
AI操作网页:browser-use和AI大模型互动解析
browser-use 是一个开源的 AI 驱动浏览器自动化框架,能够高效实现在线任务自动化,支持 AI 大模型操作网页,具备强大的社区影响力(GitHub 星数超 63.4k)。它通过精巧的 prompt 设计和多类型消息组合,实现与大模型的高效交互,可完成登录、数据提取、文档生成等复杂任务。其核心技巧包括结构化输入输出、任务拆解、历史记忆管理及多模态支持,为 AI 代理应用提供实践范例与技术启发。
|
11月前
|
存储 JSON 监控
解锁拼多多API,实时监控店铺评价,及时处理客户反馈!
在电商竞争激烈的环境下,及时响应顾客评价至关重要。本文介绍如何利用拼多多开放平台API,构建自动化评价监控系统,实现差评预警、情感分析与实时通知,提升客服响应效率与客户满意度,助力店铺运营数据化、智能化升级。(238字)
|
存储 开发工具 数据库
什么是 Git 存储库?
【8月更文挑战第14天】
1134 3
|
开发框架 C语言 开发者
STM32寄存器操作、模板构建
【8月更文挑战第23天】本文档介绍STM32中的寄存器操作方法与模板构建技巧。寄存器是STM32控制内外设的核心,通过直接读写特定内存地址来进行操作。以配置GPIO为例,需定位寄存器地址并写入适当值。文档还提供了一个基本的代码模板,包括包含头文件、时钟配置、外设初始化及主函数流程,帮助开发者快速搭建开发框架,并强调了参考手册的重要性以确保正确使用。
723 1
|
缓存 网络协议 网络性能优化
运输层---UDP协议
运输层---UDP协议

热门文章

最新文章