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/zh-hans
2024 年 2 月 26 日,社区正式发布了 2.8.1 版本,该版本包含了多项新增功能、错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,此版本中最显著的变化包括:
golang.org/x/net
HeaderFooterOptions
中的字段 AlignWithMargins
和 ScaleWithDoc
修改为指针类型ShapeColor
SetCellUint
支持设置无符号整型数GetPictureCells
支持获取图片单元格坐标GetConditionalStyle
支持获取条件格式样式定义GetHeaderFooter
支持获取工作表页眉页脚控制字符设置AddSlicer
支持为表格和数据透视表添加切片器GetPivotTables
支持获取数据透视表DeletePivotTable
支持删除数据透视表PivotTableOptions
中添加了新的字段 Name
以支持创建数据透视表时指定自定义数据透视表名称ChartLineType
枚举类型,以支持设置图表区域边框线型Chart
中添加了新的字段 Border
以支持设置图表区域边框类型ChartLine
中添加了新的字段 Type
以支持设置图表线型NameSpaceSpreadSheetXR10
、ContentTypeSlicer
、ContentTypeSlicerCache
和 SourceRelationshipSlicer
ExtURIPivotCacheDefinition
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
属性值工作簿部件的兼容性AutoFilter
函数添加自动过滤器时出现的 panicr
属性的行元素导致的 panic 问题GetCellRichText
在获取内联富文本时返回错误的问题GetConditionalFormats
读取带有“高于平均值”条件格式规则时 panic 的问题SetConditionalFormat
函数在创建带有多规则条件格式时,规则优先级有误的问题GetConditionalFormats
函数无法读取带有渐变填充格式数据条的问题GetStyle
或获取条件格式样式函数 GetConditionalStyle
所返回的小数位数 DecimalPlaces
字段值有误问题CalcCellValue
函数时,开启 RawCellValue
选项失效的问题 1
luhengyuorang 302 天前 1
导出的 excel,office 打开报错终于修复了,泪奔👍
|
2
saxon 302 天前 1
用了用了!好用!
|
3
luxurioust OP @saxon 谢谢你的认可
|
4
ninjashixuan 302 天前
go 一直用这个很好用,可惜没有 word 操作库 go 没有好用的。只能用 Python 的 word 库。
|
5
langhuishan 302 天前
借楼问下,这个库里,1 、SetRow 能不能直接插入 struct 或者有优雅的将 struct 转成[]interface{}; 2 、有没有支持多线程插入方法?
|
6
tallest 301 天前
@ninjashixuan 确实!
|