142 Star 804 Fork 150

GVPxuri / excelize

2024-02-26 10:06
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.8.1 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 Release Notes。完整的更改列表可查看 change log

版本说明

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

兼容性提示

  • 升级至该版本需要您使用的 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)

  • 技术交流群

DingTalk Group ID: 30047129
QQ ID: 1302058237

Excelize 技术交流群
2023-08-28 09:59
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.8.0 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 Release Notes。完整的更改列表可查看 change log

版本说明

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

兼容性提示

  • 将导出变量 ErrTableNameLength 重命名为 ErrNameLength
  • 将导出类型 PaneOptions 重命名为 Selection
  • 将导出类型 Comment 中的 Runs 字段重命名为 Paragraph
  • 移除了 Style 数据类型中的 Lang 字段
  • 移除了 ChartTitle 数据类型,使用 RichTextRun 类型代替
  • 更改 DecimalPlaces 字段的数据类型为指针类型
  • 修改了默认点与像素单位转换系数,相关 issue #279#1536
  • 修改了 AddShape 函数的签名:将 func (f *File) AddShape(sheet, cell string, opts *Shape) error 改为 func (f *File) AddShape(sheet string, opts *Shape) error

新增功能

  • 新增导出错误变量 ErrExistsTableNameErrorFormControlValue
  • Options 数据类型中新增 ShortDatePattern, LongDatePattern, LongTimePatternCultureInfo 选项,支持设置长短日期与时间格式代码,相关 issue #1199
  • 新增用于表示区域代码的 CultureName 类型枚举
  • 新增函数 GetTablesDeleteTable 支持获取与删除表格,相关 issue #674#1454
  • 新增函数 GetStyle 支持获取样式定义,相关 issue #314, #1520#1521
  • 支持为单元格的值应用带有占位、对齐、舍入、货币、会计专用和转换选项的数字格式,并支持带有 812 种语言(位置)时间和日期类型的数字格式,相关 issue #660
  • 新增 71 项公式函数: ARRAYTOTEXT, FORECAST, FORECAST.LINEAR, FREQUENCY, INTERCEPT, ODDFYIELD, ODDLPRICE, ODDLYIELD, PROB 和 VALUETOTEXT
  • 增加对工作簿保存路径的检查,若路径长度超出限制将返回错误提示
  • 新增 GetPanes 函数,支持获取窗格和视图选区设置
  • 新增 3 项表单控件函数 AddFormControlGetFormControlsDeleteFormControl,相关 issues #301#1169
  • 添加图表函数 AddChart 支持添加主要水平和垂直坐标轴标题,相关 issue #1553
  • 添加图表函数 AddChart 支持添加次坐标轴,相关 issue #518
  • 添加图表函数 AddChart 支持设置图表富文本标题与图表标题格式,相关 issue #1588
  • 通过 AddShape 函数添加形状时,如果给定的形状类型不受支持,将返回异常错误
  • 支持读取带有日本年号数字格式的单元格,相关 issue #1590
  • 函数 GetPictures 支持读取带有单一单元格锚点位置的图片,相关 issue #1585
  • 函数 NewConditionalStyle 支持创建带有数字格式与保护属性的条件格式样式,相关 issue #1610

兼容性提升

  • 添加对带多字节文本的单元格字符长度检查,相关 issue #1517
  • 当创建带有重复名称的表格或自定义名称时,将返回错误异常
  • 提高单元格批注文本框大小显示效果在 KingSoft WPS 下的兼容性
  • 支持从自定义工作表属性设置中读取列宽度,相关 issue #1536
  • 修改内部工作表 XML 部件名称为大小写不敏感以提高兼容性,相关 issue #1591

问题修复

  • 修复因计算带有转义 XML 单元格的长度有误导致的,部分情况流式生成工作簿损坏问题,解决 issue #1518, #1519#1530
  • 修复带有多行文本的单元格批注文本框大小异常问题
  • 修复了部分情况下,读取带有数字格式的文本单元格时,读取结果有误的问题,解决 issue #1523, #1528#1533
  • 修复了并发安全函数中存在的竞态问题
  • 修复了部分情况下,对与单元格时间毫秒舍入精度结果有误的问题
  • 修复了部分情况下,读取带有 12 小时制数字格式的单元格时,时间结果有误的问题
  • 修复了部分情况下,计算带有 SUMIFS 和 AVERAGEIFS 函数的公式结果有误的问题,解决 issue #1564
  • 修复了公式计算引擎中基本算数运算符优先级问题导致的计算结果有误问题,解决 issue #1599
  • 修复部分情况下,带有跨工作表单元格引用公式计算结果有误的问题
  • 修复部分情况下,删除行后,工作表中的表格调整结果异常的问题,解决 issue #1539
  • 支持读取单元格中的多张图片,解决 issue #1548
  • 修复部分情况下,因读取图形对象位置有误导致的添加图片结果异常问题,解决 issue #1560
  • 删除行列时支持调整公式,修复部分情况下导致的文档损坏问题,解决 issue #1565
  • 修复了部分情况下,计算带有 CONCAT 和 CONCATENATE 函数的公式结果有误的问题,解决 issue #1569
  • 修复部分情况下,带有嵌套数字类型参数公式的计算结果有误问题,解决 issue #1582
  • 修复因内部图形对象计数器有误导致的部分情况下添加图片出现重复的问题,解决 issue #1584
  • 修复因部分情况下读取带有时间类型数字格式的单元格时,小时有误的问题,解决 issue #1587
  • 修复了部分情况下,获取合并单元格区域右下角单元格坐标时出现的 panic

性能优化

  • 优化内部正字表达式的执行速度,相关 issue #1532
  • 避免内部字节数组与字符串数据类型变量之间的转换,相关 issue #1541

其他

  • Go Modules 依赖模块更新
  • 简化了内部变量的声明与错误返回语句
  • 移除了内部带有 Unicode 编码的预设语言数字格式映射表
  • 移除了内部 xlsxTabColor 数据类型,使用 xlsxColor 代替 xlsxTabColor 数据类型
  • 单元测试与文档更新
  • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新

致谢

感谢 Excelize 的所有贡献者,以下是为此版本提交代码的贡献者列表:

  • IAkumaI (Valery Ozarnichuk)

  • sillydong (Chen Zhidong)

  • fudali113 (fudali)

  • Juneezee (Eng Zer Jun)

  • joehan109

  • yicixin (壹次心)

  • vb6iscool

  • chengcxy (chengxinyao)

  • lidp20

  • JDavidVR (David)

  • fsfsx

  • cnmlgbgithub

  • 技术交流群

DingTalk Group ID: 30047129
QQ ID: 1302058237

Excelize 技术交流群
2023-04-10 16:05
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.7.1 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 Release Notes。完整的更改列表可查看 change log

版本说明

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

兼容性提示

  • 移除了 ChartLine 数据类型中的 Color 字段
  • 使用 RichTextRun 数据类型代替 ShapeParagraph
  • 使用 Fill 代替 Shape 数据类型中的 Color 字段
  • 移除了已导出的数据类型 AutoFilterListOptions
  • 将数据类型 TableOptions 重命名为 Table
  • 添加图表函数 AddChart 改为使用 ChartType 类型枚举值指定图表类型
  • 修改了以下 7 个函数的签名
    • func (f *File) AutoFilter(sheet, rangeRef string, opts *AutoFilterOptions) error 修改为 func (f *File) AutoFilter(sheet, rangeRef string, opts []AutoFilterOptions) error
    • func (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) error 修改为 func (f *File) AddPictureFromBytes(sheet, cell string, pic *Picture) error
    • func (f *File) GetPicture(sheet, cell string) (string, []byte, error) 修改为 func (f *File) GetPictures(sheet, cell string) ([]Picture, error)
    • func (f *File) AddVBAProject(bin string) error 修改为 func (f *File) AddVBAProject(file []byte) error
    • func (f *File) GetComments() (map[string][]Comment, error) 修改为 func (f *File) GetComments(sheet string) ([]Comment, error)
    • func (f *File) AddTable(sheet, rangeRef string, opts *TableOptions) error 修改为 func (f *File) AddTable(sheet string, table *Table) error
    • func (sw *StreamWriter) AddTable(rangeRef string, opts *TableOptions) error 修改为 func (sw *StreamWriter) AddTable(table *Table) error

新增功能

  • 新增函数 SetSheetDimensionGetSheetDimension 以支持设置与获取工作表已用区域,相关 issue #1463
  • 创建样式函数 NewStyle 现已支持 17 种渐变填充样式
  • 增加创建样式数量上限至 65430
  • 通过 AddPicture 添加图片时,现已允许插入 BMP 格式图片
  • 函数 GetPictures 支持读取被添加至同一单元格中的多张图片
  • 设置条件格式函数 SetConditionalFormat 支持设置带有“如果为真则停止”和“图标集”条件的条件格式规则
  • 设置条件格式函数 SetConditionalFormat 支持设置在条件格式中使用带有纯色填充样式的数据条,并支持指定数据条的颜色,相关 issue #1462
  • 添加图表函数 AddChart 支持设置图表中各个数据系列使用自定义填充颜色,相关 issue #1474
  • 添加图表函数 AddChart 支持设置气泡图图表中各个系列气泡的大小
  • 添加图表函数 AddChart 支持设置子母饼图和复合条饼图中第二绘图区域的数据系列
  • 添加图表函数 AddChart 支持为图表中数据标签设置自定义数字格式,相关 issue #1499
  • 创建表格函数 AddTable 支持在创建表格时指定是否包含标题行
  • 创建表格函数 AddTable 创建表格时增加对表格名称的校验,并导出了错误常量 ErrTableNameLength,相关 issue #1468
  • 函数 AutoFilter 支持为筛选范围内的多个列设置筛选条件
  • 计算单元格的值函数 CalcCellValue 现已支持指定是否为公式计算结果应用数字格式
  • 计算单元格的值函数 CalcCellValue 对于以下公式函数加入了双字节字符的支持:LEFT, LEN, LENB, MID, MIDB, RIGHT 和 RIGHTB,相关 issue #1476
  • 计算单元格的值函数 CalcCellValue 函数对于存在错误的公式将在计算结果中返回公式错误代码,并将详细错误信息在 error 数据类型的返回值中返回,相关 issue #1490
  • 对输入图片文件的扩展名调整为大小写不敏感,相关 issue #1503
  • 使用流式写入器流式按行赋值时,对于值为 nil 的单元格将会跳过生成该单元格,相关 issue #756
  • 获取超链接 GetCellHyperLink 函数支持读取合并单元格中的超链接
  • 添加了新的导出类型 ChartType 以表示图表类型枚举

兼容性提升

  • 兼容带有函数组的工作簿
  • 兼容带有严格模式 XML 命名空间地址的工作簿主题,相关 issue #1447
  • 提高了与文档内部不含工作簿关系部件工作簿的兼容性,以修复打开此类工作簿可能出现的 panic

问题修复

  • 修复了特定情况下读取日期时间类型单元格的值存在精度误差的问题
  • 修复了特定情况下当修改原本存储了日期时间类型的单元格为文本类型值,修改后单元格数据类型有误的问题,解决 issue #1464
  • 修复了部分情况下公式计算结果为空的问题,解决 issue #1469
  • 修复了设置数据条类型条件格式时,指定自定义最大/最小值无效的问题,解决 issue #1492
  • 修复了打开行高或列宽为 0 的工作表,保存后行高列宽设置失效的问题,解决 issue #1461
  • 提高了读取带有空白字符共享字符串表索引值的兼容性,解决 issue #1508

性能优化

  • 提高了应用带有自定义月份数字格式的速度,相关 issue #1455
  • 大幅提高了对于带有合并单元格工作表的处理速度,相关 issue #1448

其他

  • Go Excelize 提供了支持 WebAssembly / Javascript 环境的 excelize-wasm NPM 包
  • Go Modules 依赖模块更新
  • 单元测试与文档更新
  • 优化内部变量与函数命名
  • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新

致谢

感谢 Excelize 的所有贡献者,以下是为此版本提交代码的贡献者列表:

  • liron-l (Liron Levin)

  • nathj07 (Nathan Davies)

  • Josh-Weston (Josh Weston)

  • jaby

  • FlowingSPDG (Shugo Kawamura)

  • barismar (Baris Mar Aziz)

  • doingNobb (张涛)

  • rpoetrap (Rizki Putra)

  • huangshaokun

  • CHANTXU64 (ChantXu64)

  • playGitboy

  • 技术交流群

DingTalk Group ID: 30047129
QQ Group ID: 207895940

Excelize 技术交流群
最后提交信息为: This upgrade dependencies package
2023-01-09 09:53
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.7.0 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 Release Notes。完整的更改列表可查看 change log

版本说明

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

兼容性提示

  • 升级至该版本需要您使用的 Go 语言为 1.16 或更高版本,以迁移不再支持的标准库 ioutil
  • 当给定工作表名称中存在无效字符时将返回错误,不再自动忽略无效字符
  • GetCellStyle 函数不再返回合并单元格区域左上角单元格的样式
  • 重命名以下 5 个导出数据类型和错误常量:
    • PivotTableOption 重命名为 PivotTableOptions
    • FormatHeaderFooter 重命名为 HeaderFooterOptions
    • FormatSheetProtection 重命名为 SheetProtectionOptions
    • SparklineOption 重命名为 SparklineOptions
    • ErrExistsWorksheet 重命名为 ErrExistsSheet
  • 移除了以下 54 项导出类型:AutoPageBreaks, BaseColWidth, BlackAndWhite, CodeName, CustomHeight, Date1904, DefaultColWidth, DefaultGridColor, DefaultRowHeight, EnableFormatConditionsCalculation, FilterPrivacy, FirstPageNumber, FitToHeight, FitToPage, FitToWidth, OutlineSummaryBelow, PageLayoutOption, PageLayoutOptionPtr, PageLayoutOrientation, PageLayoutPaperSize, PageLayoutScale, PageMarginBottom, PageMarginFooter, PageMarginHeader, PageMarginLeft, PageMarginRight, PageMarginsOptions, PageMarginsOptionsPtr, PageMarginTop, Published, RightToLeft, SheetFormatPrOptions, SheetFormatPrOptionsPtr, SheetPrOption, SheetPrOptionPtr, SheetViewOption, SheetViewOptionPtr, ShowFormulas, ShowGridLines, ShowRowColHeaders, ShowRuler, ShowZeros, TabColorIndexed, TabColorRGB, TabColorTheme, TabColorTint, ThickBottom, ThickTop, TopLeftCell, View, WorkbookPrOption, WorkbookPrOptionPtr, ZeroHeightZoomScale
  • 移除了 2 个导出常量:OrientationPortraitOrientationLandscape
  • 修改了以下 21 个函数的签名
    • func (f *File) SetPageLayout(sheet string, opts ...PageLayoutOption) error 修改为 func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error
    • func (f *File) GetPageLayout(sheet string, opts ...PageLayoutOptionPtr) error 修改为 func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)
    • func (f *File) SetPageMargins(sheet string, opts ...PageMarginsOptions) error 修改为 func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error
    • func (f *File) GetPageMargins(sheet string, opts ...PageMarginsOptionsPtr) error 修改为 func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)
    • func (f *File) GetSheetIndex(sheet string) int 修改为 func (f *File) GetSheetIndex(sheet string) (int, error)
    • func (f *File) SetSheetName(source, target string) 修改为 func (f *File) SetSheetName(source, target string) error
    • func (f *File) GetSheetVisible(sheet string) bool 修改为 func (f *File) GetSheetVisible(sheet string) (bool, error)
    • func (f *File) DeleteSheet(sheet string) 修改为 func (f *File) DeleteSheet(sheet string) error
    • func (f *File) NewSheet(sheet string) int 修改为 func (f *File) NewSheet(sheet string) (int, error)
    • func (f *File) NewConditionalStyle(style string) (int, error) 修改为 func (f *File) NewConditionalStyle(style *Style) (int, error)
    • func (f *File) NewStyle(style interface{}) (int, error) 修改为 func (f *File) NewStyle(style *Style) (int, error)
    • func (f *File) AddChart(sheet, cell, opts string, combo ...string) error 修改为 func (f *File) AddChart(sheet, cell string, chart *ChartOptions, combo ...*ChartOptions) error
    • func (f *File) AddChartSheet(sheet, opts string, combo ...string) error 修改为 func (f *File) AddChartSheet(sheet string, chart *ChartOptions, combo ...*ChartOptions) error
    • func (f *File) AddShape(sheet, cell, opts string) error 修改为 func (f *File) AddShape(sheet, cell string, opts *Shape) error
    • func (f *File) AddPicture(sheet, cell, picture, format string) error 修改为 func (f *File) AddPicture(sheet, cell, picture string, opts *GraphicOptions) error
    • func (f *File) AddPictureFromBytes(sheet, cell, opts, name, extension string, file []byte) error 修改为 func (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) error
    • func (f *File) AddTable(sheet, hCell, vCell, opts string) error 修改为 func (f *File) AddTable(sheet, rangeRef string, opts *TableOptions) error
    • func (sw *StreamWriter) AddTable(hCell, vCell, opts string) error 修改为 func (sw *StreamWriter) AddTable(rangeRef string, opts *TableOptions) error
    • func (f *File) AutoFilter(sheet, hCell, vCell, opts string) error 修改为 func (f *File) AutoFilter(sheet, rangeRef string, opts *AutoFilterOptions) error
    • func (f *File) SetPanes(sheet, panes string) error 修改为 func (f *File) SetPanes(sheet string, panes *Panes) error
    • func (f *File) SetConditionalFormat(sheet, reference, opts string) error 修改为 func (f *File) SetConditionalFormat(sheet, rangeRef string, opts []ConditionalFormatOptions) error
  • 引入新的函数代替现有函数:
    • 新增 SetSheetProps 代替 SetSheetPrOptionsSetSheetFormatPr 函数
    • 新增 GetSheetProps 代替 GetSheetPrOptionsGetSheetFormatPr 函数
    • 新增 SetSheetView 代替 SetSheetViewOptions 函数
    • 新增 GetSheetView 代替 GetSheetViewOptions 函数
    • 新增 SetWorkbookProps 代替 SetWorkbookPrOptions 函数
    • 新增 GetWorkbookProps 代替 GetWorkbookPrOptions 函数
    • 新增 InsertRows 代替 InsertRow 以支持批量添加行
    • 新增 InsertCols 代替 InsertCol 以支持批量添加列
  • CellType 枚举值中添加 CellTypeFormula, CellTypeInlineString, CellTypeSharedString 并移除了 CellTypeString
  • 对添加批注 AddComment 函数的签名进行了更改,支持创建富文本批注,相关 issue #1204
  • 当 XML 反序列化异常时将返回错误以代替输出日志,函数 GetComments, GetDefaultFontSetDefaultFont 增加了 error 类型的错误返回值

新增功能

  • 新增 GetDataValidationsGetConditionalFormats 函数以支持获取数据验证设置和条件格式,相关 issue #827
  • 新增 ProtectWorkbookUnprotectWorkbook 以提供工作簿保护设置支持
  • 新增 SetSheetCol 函数以支持按列设置单元格的值,相关 issue #1247
  • 新增 GetColStyle 函数以支持获取列样式,相关 issue #1293
  • 新增 SetSheetBackgroundFromBytes 函数以支持根据给定的图片数据设置工作表背景图片,相关 issue #1405
  • 新增导出变量 IndexedColorMapping 以支持内建索引颜色转换
  • 新增 20 项导出类型: AutoFilterListOptions, AutoFilterOptions, Chart, ChartAxis, ChartDimension, ChartLegend, ChartLine, ChartMarker, ChartPlotArea, ChartSeries, ChartTitle, ConditionalFormatOptions, PaneOptions, Panes, GraphicOptions, Shape, ShapeColor, ShapeLine, ShapeParagraphTableOptions
  • 新增 2 项公式函数: AGGREGATE 和 SUBTOTAL
  • SaveWriteWriteTo 函数支持指定保存选项,相关 issue #744
  • 使用 AddChart 函数添加图表时,支持为折线图设置是否使用平滑折线,相关 issue #1290
  • 使用 AddChart 函数添加图表时,支持设置自定义折线图线条颜色,相关 issue #1345
  • 使用 AddChart 函数添加图表时,支持设置自定义坐标轴字体样式,相关 issue #320
  • 添加图表函数 AddChart 支持创建三维折线图
  • 以下函数新增并发安全支持:SetColWidthGetColWidthSetColVisibleGetColVisibleSetColStyleGetColStyle
  • 设置样式时,当给定的样式 ID 不存在时将返回错误,相关 issue #1323
  • 流式按行赋值时,若行号未递增将返回错误,以避免生成的工作簿损坏,相关 issue #1139
  • 按行流式写入工作表时,支持通过指定 RowOpts 为单元格设置样式,相关 issue #1354
  • 支持流式设置窗格,相关 issue #1047
  • 支持流式设置行内富文本单元格
  • 支持流式插入分页符
  • 新增 7 项导出错误信息: ErrUnprotectWorkbookErrUnprotectWorkbookPasswordErrStreamSetPanesErrSheetNameBlankErrSheetNameInvalidErrSheetNameLengthErrSheetNameSingleQuote,以便开发者可根据不同的错误类型进行采取相应处理
  • 新增 5 项导出数据类型: HeaderFooterOptionsPageLayoutMarginsOptionsPageLayoutOptionsSheetPropsOptionsViewOptions
  • 支持设置分级显示的明细数据方向
  • 支持读取和设置单元格字体的主题颜色和色调,相关 issue #1369
  • 支持读取带有符合 ISO 8061 标准的时间类型单元格的值
  • 支持设置和读取带有内建颜色索引的字体颜色
  • 工作簿关闭函数将清理由流式写入器生成的磁盘缓存文件
  • 支持添加或删除列时自动调整受影响的列样式
  • 通过 AddPicture 添加图片时,现已允许插入 SVG 格式图片

兼容性提升

  • 流式写入单元格时将以行内字符类型存储字符型单元格的值,相关 issue #1377
  • 保存工作簿时将跳过工作表中的不带有样式和属性的空白行,以减少生成文档的体积,相关 issue #1383

问题修复

  • 修复部分情况下读取带有内建数字格式样式的浮点数精度有误问题,解决 issue #1328#1368#1373
  • 修复部分情况下读取带有 AM/PM 数字格式样式的单元格有误问题,解决 issue #1338
  • 修复部分情况下删除批注时由于数组下标越界导致的 panic,解决 issue #1343
  • 修复部分情况下读取单元格的值时出现 panic 的问题,解决 issue #1384#1415
  • 修复部分情况下误将文本解析为浮点型数值的问题,解决 issue #1360
  • 修复使用空字符创建工作表后生成的工作簿损坏问题,解决 issue #1361
  • 修复向工作表添加图片后,获取该图片内容为空的问题
  • 修复部分情况下插入行列后生成的工作簿损坏问题
  • 删除单元格公式时将删除公式计算链中的共享单元格引用,以修复部分情况下生成的文档损坏问题
  • 修复部分情况下未对工作表名称特殊字符及长度做正确处理的问题,解决 issue #1328
  • 修复部分情况下公式函数 OR 计算结果有误的问题
  • 修复在带有单一单元格区域引用的工作表中插入行列时,将收到异常的问题
  • 修复获取带有单一单元格区域引用合并单元格区域时,收到异常的问题
  • 修复部分情况下读取富文本单元格的值不完整问题
  • 修复流式写入时未转义 XML 字符导致的文档损坏问题,解决 issue #1391
  • 修复公式计算函数 ADDRESS 在工作表名称为空时计算结果有误的问题,解决 issue #1396
  • 修复部分情况下添加图片结果有误的问题,解决 issue #1404

性能优化

  • 提高流式合并单元格性能,相较于上一版本,耗时最高降低约 90%,内存使用最高减少约 86%
  • 优化按行流式写入工作表 SetRow 函数的性能,相较于上一版本,耗时最高降低约 19%

其他

  • Go Modules 依赖模块更新
  • 单元测试与文档更新
  • 优化内部变量与函数命名
  • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新

致谢

感谢 Excelize 的所有贡献者,以下是为此版本提交代码的贡献者列表:

  • cdenicola (Cooper de Nicola)
  • chenliu1993
  • davidborry
  • patsak (Kostya Privezentsev)
  • dafengge0913
  • Beeb0p (Artem Tarasenko)
  • invzhi
  • zhangzitao (Zitao)
  • jtwatson (Joseph Watson)
  • carbin-gun (charles.deng)
  • harrison3000 (Harrison)
  • strivek (GaoFei)
  • gonghaibinx
  • martinmr (Martin Martinez Rivera)
  • zclark (Zach Clark)
  • March0715 (March)
  • renxiaotu
  • devloppper
  • jianxinhou
  • nesstord
  • Bayzet (Bayzet Tlyupov)
  • guoweikuang (郭伟匡)
  • qinyuguang (Gin)
  • liron-l (Liron Levin)
2022-08-22 01:30
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.6.1 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 Release Notes。完整的更改列表可查看 change log

版本说明

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

兼容性提示

  • 重命名导出类型 TabColorTabColorRGB
  • 重命名导出常量 TotalColumnsMaxColumns
  • 重命名导出变量 ErrMaxFileNameLengthErrMaxFilePathLength
  • 重命名导出变量 ErrWorkbookExtErrWorkbookFileFormat
  • 移除了导出变量 ErrEncrypt
  • 工作表名称不再区分大小写

新增功能

  • 新增 34 项公式函数: CONVERT, COVARIANCE.S, DAVERAGE, DAYS360, DCOUNT, DCOUNTA, DGET, DMAX, DMIN, DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, DVARP, EDATE, EOMONTH, EUROCONVERT, GROWTH, HYPERLINK, MINVERSE, MMULT, NETWORKDAYS, NETWORKDAYS.INTL, PEARSON, RSQ, SKEW.P, SLOPE, STDEVPA, STEYX, TREND, WEEKNUM, WORKDAY, WORKDAY.INTL
  • 新增 DeleteComment 函数支持删除单元格批注,相关 issue #849
  • 通过 AddShape 函数添加形状时支持指定宏
  • 新增对 1900 和 1904 日期系统的支持,相关 issue #1212
  • 新增更新超链接支持,相关 issue #1217
  • 通过 AddPicture 添加图片时,现已允许插入 EMF、WMF、EMZ 和 WMZ 格式图片,相关 issue #1225
  • 优化打开工作簿失败时的错误提示信息,新增导出变量 ErrWorkbookPassword 定义了打开工作簿时密码验证失败的错误提示信息,以便开发者可根据不同的错误类型进行采取相应处理
  • 新增导出常量 MinFontSizeMinColumnsMaxCellStyles 以定义最小字号、最小列号和单元格样式数量上限
  • 公式引擎新增数组公式支持
  • 支持根据给定的密码对工作簿进行加密保护,相关 issue #199
  • 设置单元格富文本格式时,支持通过指定 RichTextRun 中的 vertAlign 属性设置上标和下标
  • 通过 DeleteDataValidation 函数删除数据验证时,支持省略第二个引用区域参数以删除工作表中的全部数据验证,相关 issue #1254
  • 公式计算引擎支持带有百分比符号的条件比较表达式
  • 公式计算引擎支持依赖依赖公式计算,相关 issue #1262
  • 新增文档打开选项 MaxCalcIterations 以支持指定公式迭代计算的最多迭代次数
  • 新增导出类型 ColorMappingType 以定义颜色转换枚举类型
  • 插入或删除行列时支持自动调整表格区域
  • 支持设置与获取工作表标签颜色索引、主题和色调,相关 issue #1283
  • 行迭代器新增函数 GetRowOpts 支持读取行属性,相关 issue #1296

兼容性提升

  • 提升与内部包含无效样式计数工作簿的兼容,解决 issue #1211
  • 提升与 Google Sheet 的兼容性,解决 issue #1244#1314
  • 流式写入器将不再为值为 nil 的单元格写入工作表,解决 issue #1299

问题修复

  • 修复当数据透视表中值区间与行/列区间包含相同字段时,生成的工作簿损坏问题,解决 issue #1203
  • 修复因缺少单元格类型检查导致的获取单元格富文本内容异常问题,解决 issue #1213
  • 修复读取单元格值时,因单元格类型推断错误导致的读取结果异常问题,解决 issue #1219
  • 修复读取带有 0 占位符数字格式表达式样式的单元格时,值为空的问题,解决 #1312#1313
  • 修复部分情况下设置单元格值时,单元格继承行列样式有误的问题,解决 issue #1163
  • 修复在不包含视图属性设置的工作表中设置窗格时将出现 panic 的问题
  • 修复部分情况下公式引擎多参数公式计算结果有误的问题
  • 修复因内部页眉页脚属性定义顺序有误导致的生成工作簿损坏问题,解决 issue #1257
  • 修复部分情况下单元格赋值失效的问题,解决 issue #1264
  • 修复设置工作表视图属性时可能出现的 panic
  • 修复部分情况下因工作表核心属性中 dcterms 属性为空,导致生成的工作簿损坏问题
  • 修复新建工作表后工作簿属性丢失问题,解决 issue #1298

性能优化

  • 提高按行赋值和合并单元格的性能,恢复因修复 issue #1129 时导致的性能下降
  • 优化了公式计算引擎的性能
  • 降低 AddComment 添加批注时的内存开销并减少耗时,解决 issue #1310

其他

  • Go Modules 依赖模块更新
  • 单元测试与文档更新,修复单元测试在 go1.19 下的兼容性问题
  • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新

致谢

感谢 Excelize 的所有贡献者,以下是为此版本提交代码的贡献者列表:

  • @JDavidVR (David)
  • @sceneq
  • @Eng Zer Jun (Eng Zer Jun)
  • @MichealJl (jialei)
  • @ww1516123
  • @z-hua (z.hua)
  • @xdlrt (yeshu)
  • @空白 (Eagle Xiang)
  • @MJacred
  • @ReganYue (Regan Yue)
  • @thomascharbonnel (Thomas Charbonnel)
  • @ee0703 (EE)
  • @NaturalGao (NaturalGao)
  • @三瓜
2022-04-11 09:24
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.6.0 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 Release Notes。完整的更改列表可查看 change log

版本说明

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

兼容性提示

  • 重命名导出常量 NameSpaceDublinCoreMetadataIntiativeNameSpaceDublinCoreMetadataInitiative 以修复拼写错误
  • 重命名导出变量 ErrUnsupportEncryptMechanismErrUnsupportedEncryptMechanism
  • 重命名导出变量 ErrDataValidationFormulaLenthErrDataValidationFormulaLength
  • 重命名导出变量 ErrDefinedNameduplicateErrDefinedNameDuplicate
  • 移除了导出变量 XMLHeaderByte
  • 移除了设置数据数据验证列表函数 SetSqrefDropList 的第二个形参 isCurrentSheet 和异常返回值
  • 移除了行迭代器中的导出字段 TotalRows

新增功能

  • ProtectSheet 新增支持通过指定的算法保护工作表,支持的算法包括: XOR、MD4、MD5、SHA1、SHA256、SHA384 和 SHA512
  • UnprotectSheet 支持通过指定第二个可选参数在移除工作表保护时验证密码
  • 新增 71 项公式函数: AVERAGEIFS, BETADIST, BETA.DIST, BETAINV, BETA.INV, BINOMDIST, BINOM.DIST, BINOM.DIST.RANGE, BINOM.INV, CHIINV, CHITEST, CHISQ.DIST, CHISQ.DIST.RT, CHISQ.INV, CHISQ.INV.RT, CHISQ.TEST, CONFIDENCE.T, CORREL, COVAR, COVARIANCE.P, CRITBINOM, ERROR.TYPE, EXPON.DIST, EXPONDIST, F.DIST, F.DIST.RT, FDIST, F.INV, F.INV.RT, FINV, FORMULATEXT, F.TEST, FTEST, GAMMA.DIST, GAMMADIST, GAMMA.INV, GAMMAINV, GAMMALN.PRECISE, GAUSS, HOUR, HYPGEOM.DIST, HYPGEOMDIST, INDIRECT, LOGINV, LOGNORM.DIST, LOGNORMDIST, LOGNORM.INV, MODE, MODE.MULT, MODE.SNGL, NEGBINOM.DIST, NEGBINOMDIST, PHI, SECOND, SERIESSUM, SUMIFS, SUMPRODUCT, SUMX2MY2, SUMX2PY2, SUMXMY2, T.DIST, T.DIST.2T, T.DIST.RT, TDIST, TIMEVALUE, T.INV, T.INV.2T, TINV, T.TEST, TTEST, TYPE
  • 保存或另存为工作簿时增加对文件扩展名进行检查
  • 支持设置工作簿视图模式和显示/隐藏标尺
  • 引入依赖库 NFP (number format parser) 以增加对自定义时间、日期和文本类型数字格式的支持,可对包含 19 种语言(南非荷兰语、孟加拉语、汉语、英语、法语、德语、奥地利语、爱尔兰语、意大利语、俄语、西班牙语、泰语、藏语、土耳其语、威尔士语、沃洛夫语、科萨语、彝语和祖鲁语)本地月份名称和 12 小时制格式的数字格式表达式进行解析,相关 issues #660, #764, #1093, #1112#1133
  • 新增 API: SetWorkbookPrOptionsGetWorkbookPrOptions 支持设置和获取工作簿中的 FilterPrivacyCodeName 属性,以解除部分情况下向工作簿中嵌入 VBA 工程时的限制,相关 issue #1148
  • 公式计算引擎支持中缀运算符后包含无参数公式函数的计算
  • 支持以文本形式读取布尔型单元格的值
  • 通过 AddChart 函数添加圆环图时,支持指定圆环图内径大小,解决 issue #1172
  • 新增导出 4 项错误信息 ErrPasswordLengthInvalid, ErrUnsupportedHashAlgorithm, ErrUnsupportedNumberFormat, ErrWorkbookExt,以便开发者可根据不同的错误类型进行采取相应处理

兼容性提升

  • 提升与 LibreOffice 电子表格应用程序的兼容性,修复在 LibreOffice 中打开的工作表名包含空格时,自动过滤器失效的问题,解决 issue #1122
  • 提升对工作簿中替代内容的支持,保留工作簿、工作表以及 drawingML 中的替代内容
  • 提升与页面设置中打印质量 DPI 设置属性的兼容性

问题修复

  • 修复另存为工作簿时,页面布局属性丢失的问题,解决 issue #1117
  • 修复部分情况下,对工作表进行修改后合并单元格区域未更新的问题
  • 修复样式解析异常导致的粗体和部分其他字体样式丢失问题,解决 issue #1119
  • 修复部分情况下将文档保存为 XLAM / XLSM / XLTM / XLTX 格式后文档损坏的问题
  • 单元格样式支持继承行/列样式,以修复对工作表进行修改后合并单元格区域单元格样式不正确的问题,解决 issue #1129
  • 修复部分情况下获取单元格样式 ID 错误的问题
  • 修复编号为 42 的内建数字格式定义错误的问题
  • 修复部分情况下数字精度解析错误的问题
  • SetCellDefault 支持设置非数字类型单元格的值,解决 issue #1139
  • 修复部分情况下另存为工作簿时,显示或隐藏工作表标签属性丢失的问题,解决 issue #1160
  • 修复部分情况下嵌套公式计算错误的问题,解决 issue #1164
  • 修复部分情况下公式计算结果精度不准确以及在 x86 和 arm64 架构 CPU 下公式计算结果精度不一致的问题
  • 修复部分情况下使用科学记数法表示的数值解析失败的问题
  • 修复图表轴最大值最小值为 0 时不起作用的问题

性能优化

  • 提高使用行迭代器进行流式读取的性能,当读取包含大规模数据的电子表格文档时,内存开销相较于上一版本降低最高约 50%,内存垃圾回收次数降低约 80%

其他

  • Go Modules 依赖模块更新
  • 单元测试与文档更新
  • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
2022-01-03 00:23
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.5.0 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

兼容性提示

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

新增功能

  • 新增 API: SetRowStyle 支持设置整行样式, 相关 issue #990
  • 新增 API: GetCellType 支持获取单元格数据类型, 相关 issue #417#520
  • 新增 API: SetAppPropsGetAppProps 支持设置与获取工作簿应用程序属性, 相关 issue #1095
  • GetCellValue, GetRows, GetCols, RowsCols 支持指定是否读取单元格原始值而不应用数字格式表达式, 相关 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 #1096
  • 优化读取工作表列表性能
  • 优化设置列样式存储,缩小生成的文档体积,解决 issue #1057

其他

  • Go Modules 依赖模块更新
  • 单元测试与文档更新
  • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
2021-08-02 00:39
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.4.1 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

兼容性提示

Go Modules 包引用地址调整为 github.com/xuri/excelize/v2

新增功能

  • 新增流式设置工作表列宽度支持,相关 issue #625
  • 新增流式创建合并单元格支持,相关 issue #826
  • 公式计算引擎新增 2 项公式函数支持: BESSELK, BESSELY
  • 公式计算引擎支持自定义名称引用,相关 issue #856
  • 添加图表时支持设置不显示主要横纵坐标轴
  • 通过 AddPivotTable 创建数据透视表支持通过自定义名称动态引用数据源
  • 以下函数新增支持并发安全调用,相关 issue #861
  • 导出 24 个内部异常消息

兼容性提升

  • 提升内部默认 XML 命名空间兼容性,修复部分情况下生成文档损坏的问题
  • 兼容带有非标准页面布局属性数据类型的电子表格文档,避免打开失败的问题
  • 增加内部共享字符表计数
  • 解除通过给定的时间设置单元格的值时,需要协调世界时 (UTC) 的限制,相关 issue #409
  • 增加对内部 XML 控制字符的兼容
  • 重命名导出字段 File.XLSXFile.Pkg
  • 修改 NewSheet, GetSheetIndex, DeleteSheet 对工作表名称大小写不敏感,相关 issue #873
  • 修复条件格式与数据透视表的兼容性问题,解决 issue #883
  • 改进与页面布局中无效的首页编号属性的兼容性
  • SetCellRichText 增加字符数上限检查并修复保留字符丢失问题

问题修复

  • 修复部分情况下 12/24 制小时时间格式解析异常的问题,解决 issue #823 和 issue #841
  • 修复部分情况下无法通过 GetComments 获取批注的问题,解决 issue #825
  • 修复设置和获取批注时支持多个批注作者,解决 issue #829#830
  • 修复命名空间地址解析异常而产生重复命名空间,导致删除再创建同名工作表后的生成文档损坏问题,解决 issue #834
  • 修复当设置工作表分组默认属性 showOutlineSymbolssummaryBelowsummaryRightfalse 时,设置失效的问题
  • 修复部分情况下 GetRows 返回冗余工作表尾部空行的问题,解决 issue #842
  • 修复部分情况下获取获取单元格的值时,未返回带有公式的空单元格的问题,解决 issue #855
  • 修复部分情况下 IF 公式条件运算错误问题,解决 issue #858
  • 修复通过 GetRowHeight 获取行高度错误的问题
  • 修复部分情况下因范围解析异常导致获取和删除自定义名称错误的问题,解决 issue #879
  • 修复设置自定义名称时关联工作表索引错误的问题
  • 修复设置列样式时已有单元格样式未被更新的问题,解决 issue #467
  • 修复使用非法数据引用范围创建数据透视表时导致的潜在 panic 的问题
  • 修复部分情况下读取数字精度异常的问题,解决 issue #848#852
  • 修复设置数据验证规则时,部分情况下因未进行 XML 字符转义处理导致生成文档损坏的问题,解决 issue #971
  • 修复设置数据验证规则长度校验不准确问题,解决 issue #972
  • 修复由时间解析异常导致的,部分情况下读取带有时间或日期数字格式单元格时 CPU 资源占用率过高问题,解决 issue #974
  • 修复部分情况下,当自定义数字格式为日期时,月份解析失败的问题

性能优化

  • 通过 Save 保存或 SaveAs 另存文档时的内存使用量相较于上一版本降低最高约 19%

其他

  • 修复潜在的代码安全问题 CWE-190 和 CWE-681
  • Go Modules 依赖模块更新
  • 单元测试与文档更新
  • 持续集成服务改用 GitHub Action
  • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
  • 欢迎加入 Slack 频道Telegram 群组 或技术交流群

DingTalk Group ID: 30047129
QQ Group ID: 207895940

Excel 技术交流群
2021-04-19 01:06
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.4.0 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

兼容性提示

升级至该版本需要您使用的 Go 语言为 1.15 或更高版本。

新增功能

  • 新增 GetCellRichText API,支持根据给定的工作表名称获取富文本
  • SetPageLayoutGetPageLayout 现已支持设置和获取页面打印缩放比例、指定单色打印、起始页码
  • SetSheetPrOptionsGetSheetPrOptions 现已支持设置和获取工作表标签页颜色
  • SetCellHyperLink 支持设置屏幕提示文字与显示文字,相关 issue #790
  • 创建数据透视表时新增支持 ShowError 选项
  • 流式 API 支持设置单元格公式, 相关 issue #625
  • 公式计算引擎支持不等于运算符
  • 嵌套公式函数现在支持将单元格引用用作参数
  • 支持指定是否设置图表数据系列格式为自动填充颜色
  • 新增 152 项公式函数支持: ATAN, AVERAGE, AVERAGEA, BESSELI, BESSELJ, BIN2DEC, BIN2HEX, BIN2OCT, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, CHAR, CHOOSE, CLEAN, CODE, COLUMN, COLUMNS, COMPLEX, CONCAT, CONCATENATE, COUNT, COUNTBLANK, CUMIPMT, CUMPRINC, DATE, DATEDIF, DB, DDB, DEC2BIN, DEC2HEX, DEC2OCT, DOLLARDE, DOLLARFR, EFFECT, ENCODEURL, EXACT, FALSE, FIND, FINDB, FISHER, FISHERINV, FIXED, FV, FVSCHEDULE, GAMMA, GAMMALN, HARMEAN, HEX2BIN, HEX2DEC, HEX2OCT, HLOOKUP, IF, IFERROR, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN, IPMT, IRR, ISTEXT, ISPMT, KURT, LARGE, LEFT, LEFTB, LEN, LENB, LOOKUP, LOWER, MAX, MID, MIDB, MIN, MINA, MIRR, N, NOMINAL, NORM.DIST, NORMDIST, NORM.INV, NORMINV, NORM.S.DIST, NORMSDIST, NORM.S.INV, NORMSINV, NOT, NOW, NPER, NPV, OCT2BIN, OCT2DEC, OCT2HEX, PDURATION, PERCENTILE.INC, PERCENTILE, PERMUT, PERMUTATIONA, PMT, POISSON.DIST, POISSON, PPMT, PROPER, QUARTILE, QUARTILE.INC, REPLACE, REPLACEB, REPT, RIGHT, RIGHTB, ROMAN, ROW, ROWS, SHEET, SKEW, SMALL, STDEV, STDEV.S, STDEVA, SUBSTITUTE, T, TODAY, TRIM, TRUE, UNICHAR, UNICODE, UPPER, VAR.P, VARP, VLOOKUP

兼容性提升

  • 当以 nil 作为值调用 SetCellValue 设置单元格的值时,不再为单元格设置空白字符串而以空值代替,解决 issue #756
  • 移除内部处理单元格填充颜色样式时冗余的 XML 可选空值解析标识
  • 提升与 Google Sheets 离线浏览器扩展应用程序的兼容性,相关 issue #769
  • 在筛选器对应的名称中使用绝对引用以提升与 Apache OpenOffice 应用程序的兼容性,解决 issue #776
  • 在流式解析工作表过程中增加 XML 标签关闭事件的处理,提升行/列迭代器读取性能,修复部分情况下读取行数有误的问题
  • 提高工作簿内工作表文档使用相对路径的兼容性
  • 避免创建重复的富文本样式,解决 issue #787
  • 提高工作簿内工作表文档使用绝对路径与 Windows 目录分隔符的兼容性

问题修复

  • 修复数值舍入精度问题 #764
  • 添加并调整工作表字段的解析顺序,修复部分情况下生成的文档损坏的问题 #766
  • 修复 COTH 双曲余切三角函数计算有误的问题
  • 公式计算链增加对工作表的关联处理,修复部分情况下复制行导致的文档损坏问题,解决 issue #774
  • 删除工作表时增加对名称的处理,解决 issue #775
  • 修复内部函数 newFillsparseToken 圈复杂度过高的问题
  • 修复对工作表默认自定义行高的检查
  • 修复取消工作表中全部合并单元格时导致文档损坏的问题, 解决 issue #782
  • 修复部分情况下筛选条件部分丢失的问题
  • 修复当工作簿包含图表工作表、对话工作表时,UpdateLinkedValue 产生错误的问题
  • 修复部分情况下 GetColWidth 返回默认列宽错误的问题
  • 修复无法通过 Excel 电子表格应用程序向创建的数据透视表中添加时间轴与切片器的问题,解决 issue #804
  • 设置名称时内部的 localSheetId 属性将使用 sheetIndex,修正错误的工作表索引使用
  • 修复部分情况下保存后的文档单元格锁定或隐藏属性可能丢失问题,解决 issue #809
  • 修复流式写入数据后调用普通 API 将导致流式写入的丢失问题,解决 issue #813
  • 修复负值图表数据系列填充颜色丢失问题

性能优化

  • 提高了数值精度处理速度

其他

  • Go Modules 依赖模块更新
  • 单元测试与文档更新
  • 包含简体中文、英语、法语、俄语、日语、韩语、阿拉伯语、德语和西班牙语的多国语言文档网站更新
  • 欢迎加入 Slack 频道Telegram 群组 或技术交流群

DingTalk Group ID: 30047129
QQ Group ID: 207895940

Excelize 技术交流群
2021-01-04 00:20
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.3.2 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

新增功能

  • 数据透视表 API AddPivotTable 支持缺省列与多重数据源,相关 issue #710
  • 使用 GetCellValue 获取单元格的值支持自定义日期与时间数字格式,相关 issue #703
  • 计算单元格的值 API CalcCellValue 新增公式函数支持 ANDCLEANTRIMLOWERPROPERUPPEROR,相关 issue #701 和 #747
  • 数据验证新增支持浮点型小数区间验证规则,相关 issue #739
  • 创建图表 API AddChart 新增支持设置数据系列线型宽度和线端类型,相关 issue #549 和 #654

兼容性提升

  • 提升包含 6 个以上数据系列的折线图与 Kingsoft WPS™ 应用程序的兼容性,相关 issue #627
  • 避免部分情况下工作簿内部样式数据产生的冗余
  • 动态解析工作簿核心数据部件
  • 支持工作表中多行复用相同行标签的工作簿,相关 issue #732

问题修复

  • 修复公式词法分析器解析特定非法公式时潜在的 panic 问题,相关 issue #711
  • 修复使用相同名称进行重命名工作表时导致工作表丢失的问题,相关 issue #713
  • 修复部分情况下 NewSheet 返回工作表索引错误的问题,相关 issue #714
  • 修复特定情况下使用非内建数字格式 ID 应用单元格数字格式时产生的 panic 问题,相关 issue #715 和 #741
  • 修正公式计算引擎数据精度,相关 issue #727
  • 修复部分情况下复制行数据失效的问题,相关 issue #729
  • 修复部分情况下删除工作表后默认活动工作表错误的问题,相关 issue #727
  • 修复当使用 AddPicture 向带有多个合并单元格的工作表中插入图片时,指定自适应尺寸失效的问题,相关 issue 748
  • 修复部分情况下复制行时,合并单元格处理异常的问题,相关 issue #752

性能优化

  • 流式写入数据时的内存使用降低约 60%,相关 issue #659
  • 优化内部方法 worksheetWriter 运行时对内存分配的影响,相关 issue #722
  • 提高 AddPicture 添加图片 API 的性能,相关 issue #706

其他

  • 单元测试与文档更新
  • 包含简体中文、英语、法语、俄语、日语和韩语的多国语言文档网站更新,新增 3 种文档语言:阿拉伯语、德语和西班牙语
  • 欢迎加入 Slack 频道Telegram 群组 或技术交流群

DingTalk Group ID: 30047129
QQ Group ID: 207895940

Excelize 技术交流群
2020-09-23 00:31
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.3.1 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

新增功能

  • 支持打开带有基于 ECMA-376 文档加密标准密码保护的电子表格文档,相关 issue #199
  • 增加工作表规范与限制
  • 扩展数据透视表功能:支持设置数据透视表的标题、样式和透视表选项
  • 安全漏洞修复

兼容性提升

  • 提升 Go 1.15 版本下的兼容性,修复 Windows 操作系统下单元测试失败的问题并修复潜在的竞态条件问题
  • 提升设置默认行高的电子表格文档与 Apache OpenOffice 和 Kingsoft WPS™ 应用程序的兼容性

问题修复

  • 修复 RemoveRow 特定情况下由于下标溢出导致的 panic,相关 issue #686
  • 修复特定情况下通过流式 API 生成的文档可能损坏的问题
  • 修复添加图片设置缩放失效的问题,相关 issue #691

其他

  • 单元测试更新,文档错别字修复
  • 包含简体中文、英语、法语、俄语、日语和韩语的多国语言文档网站更新
  • 技术交流群

DingTalk Group ID: 30047129
QQ Group ID: 207895940

Excel 技术交流群
2020-08-10 01:13
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.3.0 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

新增功能

  • 支持并发设置单元格的值,相关 issue #670
  • 新增 API: SetSheetFormatPrGetSheetFormatPr,支持设置工作表格式属性,相关 issue #635
  • 新增 API: GetColsCols 列迭代器
  • AddChart 添加图表 API 支持指定 Y 轴对数刻度,相关 issue #661
  • AddPicture 添加图片 API 支持插入图片自适应单元格
  • 增加对行、列和工作簿名称的长度上限的检查
  • 公式计算引擎支持自定义名称,相关 issue #665
  • API CalcCellValue 更新:新增 12 项函数, COUNTA, ISBLANK, ISERR, ISERROR, ISEVEN, ISNA, ISNONTEXT, ISODD, ISNUMBER, MEDIAN, NASUMIF

兼容性提升

  • 兼容不同大小写的文档内部组件路径
  • 字符型单元格的值存储于共享字符表中,降低生成文档体积
  • 支持工作表中无 r 属性的 row 标签,以修复部分情况下读取工作表内容为空的问题
  • 支持多命名空间的 XML 标签,以兼容金山 WPS 等电子表格应用程序,解决 issue #651
  • 自动筛选器兼容 Office 2007 - 2010 版本的电子表格应用程序,解决 issue #637

问题修复

  • 修复因工作簿内产生了重复的筛选数据库而导致的文档损坏问题
  • 避免添加样式时生成重复的样式定义
  • 修复设置富文本中包含的特殊字符丢失问题
  • 修复使用 Office 应用程序打开添加批注的文档,保存后再次打开批注形状不为矩形的问题,解决 #672
  • 避免部分情况下开启编译内联优化参数时潜在的运行时 panic 问题,解决 issue #677 和 #679
  • 修正获取百分比单元格值的数值精度问题

其他

  • 修复特定情况下打开无效工作表时出现的异常 panic 问题
  • 完善单元测试中的错误处理
  • 包含简体中文、英语、法语、俄语、日语和韩语的多国语言文档网站更新
  • 技术交流群

DingTalk Group ID: 30047129
QQ Group ID: 207895940

Excel 技术交流群
2020-05-11 00:11
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.2.0 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

新增功能

  • 下列 API 的参数将使用工作表索引代替工作表 ID: GetSheetNameGetSheetIndexGetActiveSheetIndexSetActiveSheet, 相关 #485
  • 新增 GetSheetList API,获取与工作簿内顺序保持一致的工作表列表
  • 新增 AddChartSheet API,支持创建图表工作表,相关 issue #451
  • 新增 UnsetConditionalFormat API,支持从工作表中删除条件格式,相关 issue #571
  • 新增 DeleteDataValidation API,支持从工作表中删数据验证设置,相关 issue #348
  • 新增 SetCellRichText API,支持设置单元格换行与富文本样式,相关 issue #172
  • 新增函数 InsertPageBreakRemovePageBreak,支持从工作表中插入或删除换页符,相关 issue #492
  • 函数 AddPivotTable API 更改,支持设置数据透视表的数据标签与汇总函数,相关 issue #582
  • 函数 AddPivotTable 支持设置数据透视表的筛选项,相关 issue #598
  • 函数 AddPivotTable 支持数据透视表中的值、行或筛选项为空
  • 导出函数 ExcelDateToTime,提供将 Excel 时间格式转换为 time.Time 数据类型
  • 导出 Style 结构体,允许通过结构体指针或 JSON 字符创建样式,相关 issue #470

问题修复

  • 修复当使用 SetConditionalFormat 为单元格设置条件格式时,>=<= 运算符不生效的问题, 解决 issue #608
  • 修复特定情况下通过 StreamWriter 进行流式写入导致工作表损坏的问题,解决 issue #576
  • 提高公式中的特殊字符兼容性,解决 issue #578
  • 修复通过 DuplicateRowTo 进行复制行时,合并单元格未被复制的问题,解决 issue #586
  • 修复特定情况下创建条件格式后,相邻单元格边框样式丢失问题,解决 issue #200
  • 修复通过 GetComments 获取批注式部分批注数据无法获取问题,解决 issue #345
  • 修复特定情况下通过 GetCellValue 获取单元格值错误问题,解决 issue #602
  • 修复因某些情况下文档内部行内单元格缺少 r 属性而导致的 GetCellValue 错误地返回空值问题
  • 兼容单元格样式中的空值与默认值,修复部分情况下通过电子表格软件打开生成文档修改样式失效的问题,解决 issue #628

性能提升

  • 优化内部函数 getRowHeight,降低内存占用

其他

  • 移除工作表计算属性使部分电子表格应用程序(如:金山 WPS™ Office)打开生成的文档进行重新计算公式
  • 完善单元测试中的错误处理
  • 包含简体中文、英语、法语、俄语、日语和韩语的多国语言文档网站更新
  • 技术交流群

DingTalk Group ID: 30047129
QQ Group ID: 207895940

Excelize 技术交流群
最后提交信息为: updated test and go.mod
2020-02-10 00:07
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.1.0 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

新增功能

问题修复

  • 修复单元格值的末尾空白字符丢失问题
  • 函数 MergeCell 支持重叠合并单元格处理,解决 issue #533
  • 修复某些情况下空内联富文本丢失的问题,解决 issue #529
  • 修复对空工作簿视图的处理,解决 issue #426
  • 增加对公式中存在的转义字符处理,解决 issue #546

性能表现

  • 新增 NewStreamWriterFlush 方法,适用于生成包含大规模数据的工作表。与非流式写入相比,可降低 90.2% 的内存开销、节省 53% 时间
  • 函数 GetRows 内存采用流式数据读取,读取电子表格文档内存开销降低 87.9%,相关 issue #146issue #382
  • 兼容性提升,新增 49 个文档内部 XML 命名空间支持

其他

  • 对于解析 XML 过程出现的异常将使用日志记录,相关 issue #539
  • 提高单元测试覆盖度(行覆盖度:97.04%)
  • 完善单元测试中的错误处理
  • 包含简体中文、英语、法语、俄语、日语和韩语的多国语言文档网站更新
  • 技术交流群

DingTalk Group ID: 30047129
QQ Group ID: 207895940

Excelize 技术交流群
2019-10-09 22:17
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.0.2 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

兼容性提示

升级至该版本需要您的 Go 语言版本高于 1.10。

新增功能

问题修复

  • 修复部分情况下读取批注内容文本不完整的问题,解决 issue #434
  • 修复由于内部合并单元格偏移量计算错误导致的部分情况下使用 RemoveRow() 删除行出现下标越界问题,解决 issue #437
  • 修复部分情况下数据验证下拉菜单中的公式失效问题
  • 修复在循环迭代中调用 Save() 方法保存导致的文档损坏问题,解决 issue #443
  • 提升文档内部 workbook.xml.rels 中相对路径格式解析的兼容性,解决 issue #442
  • 修复部分情况下,删除带有合并单元格的文档所导致的文件损坏问题
  • 修复部分情况下设置保护工作表属性失效的情况,解决 issue #454
  • 修复部分情况下 GetSheetName 获取工作表名称为空的问题, 解决 issue #457
  • 增加单元格内多行文本解析的支持, 相关 issue #464
  • 修复 32 位操作系统环境下数字溢出问题,相关 issue #386
  • 修复 go module 依赖版本不匹配问题, 相关 issue #466issue #480
  • 修复部分情况下调用 SetSheetPrOptions() 所致的文档损坏问题,解决 issue #483

性能表现

  • 性能优化,减少读取文档时的内存开销和耗时,相关 issue #439

其他

  • 完善 SetSheetRow() 函数中的异常处理
  • 代码精简优化, 合并了下列内部函数:
    将函数 workBookRelsWriter, drawingRelsWriter 合并为 relsWriter
    将函数 drawingRelsReader, workbookRelsReader, workSheetRelsReader 合并为 relsReader
    将函数 addDrawingRelationships, addSheetRelationships 合并为 addRels
2019-07-01 07:35
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.0.1 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

新增功能

  • 新增 SetHeaderFooter() 方法,支持设置页眉和页脚,相关 issue #394
  • 新增 SetColStyle() 方法,支持设置列样式,相关 issue #397
  • 新增 SetDefaultFont()GetDefaultFont() 方法,支持设置工作簿默认字体,相关 issue #390
  • 新增 SetDocProps()GetDocProps() 方法,支持设置和获取文档属性,相关 issue #415
  • 函数 AddChart() 新增加了 26 种图表的创建:簇状圆锥、堆积圆锥、百分比堆积圆锥、三维圆锥图、簇状水平圆锥图、堆积水平圆锥图、堆积百分比水平圆锥图、簇状棱锥图、堆积棱锥、百分比堆积棱锥、三维棱锥图、簇状水平棱锥图、堆积水平棱锥图、堆积百分比水平棱锥图、簇状柱形图 、堆积柱形图、百分比堆积柱形图、三维柱形图、簇状水平圆柱图、堆积水平圆柱图、堆积百分比水平圆柱图、三维曲面图、俯视框架曲面图、三维曲面框架图、气泡图与三维气泡图,不受支持的图表类型将返回错误提示
  • 新增 SetDefinedName()GetDefinedName() 方法,支持设置和获取名称
  • 优化并明确了打开加密文件时的错误提示信息
  • 函数 AddPicture() 现在支持添加 TIF 和 TIFF 格式的图片

问题修复

  • 修复当数据验证公式中存在双引号时产生的问题
  • 修复内部计数错误导致的部分情况下产生重复批注问题,相关 issue #373
  • 修复部分情况下因读取内部工作表 map 错误导致读取文件失败的问题,相关 issue #404
  • 提升了处理包含数据透视表的文档兼容性,相关 issue #413
  • 提升了字号与粗体样式的兼容性,相关 issue #411#420#425
  • 优化内部重算组件以修复部分情况下在工作表中删除或插入行造成文档损坏的问题,相关 issue #421#424
  • 修复部分情况下隐藏工作表失效的问题,相关 issue #418
  • 修复内部主题颜色索引溢出导致部分情况下图表系列过多导致文档损坏的问题,相关 issue #422

其他

  • 完善单元测试提升覆盖度,行覆盖度达到 96.05%
  • 代码优化,修复 golint 问题
最后提交信息为: Update GoDoc and typo fixed
2019-04-23 13:44
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 2.0.0 版本,该版本包含了很多新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log.

版本说明

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

API 更改

下表列出了 v2.0.0 相比较于 v1.4.1 版本,API 的更改情况:

函数名 增加 error 返回值 行号计算方法变更* 删除 新增
ToALphaString × × ×
TitleToNumber × × ×
SplitCellName × × ×
JoinCellName × × ×
ColumnNameToNumber × × ×
ColumnNumberToName × × ×
CellNameToCoordinates × × ×
CoordinatesToCellName × × ×
DuplicateRowTo × × ×
SetCellFloat × × ×
SetCellStyle × × ×
InsertCol × × ×
RemoveCol × × ×
RemoveRow × ×
InsertRow × ×
DuplicateRow × × ×
SetRowHeight × × ×
GetRowHeight × × ×
GetCellValue × × ×
GetCellFormula × × ×
GetCellHyperLink × × ×
SetCellHyperLink × × ×
SetCellInt × × ×
SetCellBool × × ×
SetCellStr × × ×
SetCellDefault × × ×
GetCellStyle × × ×
SetCellValue × × ×
MergeCell × × ×
SetSheetRow × × ×
SetRowVisible × ×
GetRowVisible × ×
SetRowOutlineLevel × ×
GetRowOutlineLevel × ×
GetRows × × ×
Columns × × ×
SearchSheet × × ×
GetPicture × × ×
AutoFilter × × ×
GetColVisible × × ×
SetColVisible × × ×
GetColOutlineLevel × × ×
SetColOutlineLevel × × ×
SetColWidth × × ×
GetColWidth × × ×
GetMergeCells × × ×
ProtectSheet × × ×
UnprotectSheet × × ×
UpdateLinkedValue × × ×
SetSheetVisible × × ×
adjustHelper × × ×
adjustMergeCells × × ×
adjustAutoFilter × × ×
prepareCell × × ×
setDefaultTimeStyle × × ×
timeToExcelTime × × ×
addDrawingChart × × ×
addDrawingVML × × ×
addDrawingPicture × × ×
getTotalRowsCols × × ×
checkRow × × ×
addDrawingShape × × ×
addTable × × ×
workSheetReader × × ×
copySheet × × ×

* 从版本 v2.0.0 开始,所有行操作方法都使用从 1 开始的 Excel 行编号,早期版本中某些方法中的基于 0 的行编号将不再使用,参考相关 issue #349

新增功能

  • 新增 DuplicateRowTo() 方法, 支持根据给定的工作表名称(大小写敏感)和行号,在指定行后复制该行
  • 工作表页面布局设置函数 SetPageLayout() 新增对页面布局方向设置的支持,解决了相关 issue #318
  • 工作表页面布局设置函数 SetPageLayout() 新增对页面纸张大小设置的支持

问题修复

  • 修复部分情况下,在样式格式中未指定单元格颜色填充时,创建了空白填充的问题
  • 修复当工作表数据验证公式超过 225 个字符时,文件打开失败的问题,解决了相关 issue #339
  • 修复部分情况下,删除带有公式的单元格会导致文件损坏的问题,解决了相关 issue #346
  • 修复通过获取批注函数 GetComment(),从包含多个工作表的工作簿获取批注时,返回了错误的工作表名称的问题,解决了相关 issue #345
  • 修复获取工作表全部单元格函数 GetRows() 返回多余的列的问题
  • 修复部分情况下删除包含公式的工作表引起文档损坏的问题

性能提升

  • 单元格赋值系列函数、添加批注、图片、图表、超链接和形状函数的性能,均获得了大幅提升
  • 新增重复图片检查,将用添加引用代替添加重复图片,解决了相关 issue #359

下图是 v1.4.1 和 v2.0.0 版本下创建 12800 行 50 列工作表所执行时间和内存使用情况:

Excelize Go 语言 Excel 文档类库 v1.4.1 和 v2.0.0 性能对比

其他

  • 文档内容更新与修正
  • 完善单元测试,增加 go1.12 版本下的单元测试
最后提交信息为: Resolve #393, upgrade Go module to v2
2019-01-03 11:32
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 1.4.1 版本,该版本包含了很多新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log.

版本说明

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

新增功能

  • 新增 WriteTo() 方法, 该函数通过实现 io.WriterTo 接口支持文件写入
  • 新增 SearchSheet() 方法,支持通过给定工作表名称、单元格的值或者正则表达式来搜索指定工作表,相关 issue #277
  • 新增 ProtectSheet()UnprotectSheet() 方法,支持设置保护和取消保护工作表,以防止其他用户意外或故意更改,移动或删除工作表中的数据,相关 issue #273
  • 新增 GetMergeCells() 方法,支持通过给定的工作表名称获取当前工作表中全部合并单元格的坐标与值
  • 支持对页面轮廓线属性设置的支持,相关 issue #304
  • 新增 go module 支持
  • 支持设置与获取工作表的 TopLeftCell 属性,相关 issue #310
  • 图表创建函数 AddChart() 新增支持创建 二维面积图、二维堆积面积图、二维百分比堆积面积图、三维面积图、三维堆积面积图和三维百分比堆积面积图,相关 issue #311

问题修复

  • 修复内部函数 sharedStringsReader() 因缺少传统与严格模式 XML 命名空间地址转换导致的问题,解决相关 issue #276
  • 修复图表格式设置 JSON 参数结构体 tag 定义的问题
  • 修复部分情况下获取单元格公式时出现空指针异常问题,解决了相关 issue #290
  • 通过 GetRows() 获取指定工作表中全部单元格,该函数的返回值将忽略工作表尾部空白行,解决了相关 issue #195
  • 修复部分情况下 GetSheetMap() 返回工作表索引与名称异常问题,解决了相关 issue #297
  • 修复部分情况下通过索引删除工作表出现的异常问题,解决了相关 issue #308

其他

  • 对单元测试进行了重构,相关 issue #322
  • 使用为 excelize 设计的新 Logo, 大量的文档更新
2019-01-03 11:32
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 1.4.0 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

API 更改

  • 下列函数增加了错误返回值: AddChart()AddComment()AddPicture()AddShape()AddTable()SetConditionalFormat()

新增功能

问题修复

  • 更新默认插入批注样式,修复插入多个批注时批注框位置堆叠的问题
  • 修复部分情况下通过 NewSheet() 创建工作表导致的问题,相关 issue #249

性能优化

最后提交信息为: Comments style changed.
2019-01-03 11:31
336552 xurime 1642839958 xuri

我们很高兴地宣布发布 1.3.0 版本,该版本包含了多项新功能和错误修复。

有关更改的摘要,请参阅 版本说明。完整的更改列表可查看 change log

版本说明

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

API 更改

  • 修改函数 SetRowHeight()GetRowHeight() 中行索引的一致性, 修复问题 issue #205

新增功能

  • 新增函数 SetSheetRow() 支持批量设置单行单元格的值,相关 issue #96 和 #194
  • 新增函数 GetColOutlineLevel()GetRowOutlineLevel()SetColOutlineLevel()SetRowOutlineLevel() 支持设置工作表行、列分组
  • 新增行迭代器系列函数 RowsColumns()Next()Error()
  • 设置单元格的值函数 SetCellValue() 现已支持 booltime.Duration 类型值
  • 添加表格函数 AddTable() 支持指定表格名称,相关 issue #216
  • 添加图片函数 AddPicture() 新增支持设置图片位置,相关 issue #214
  • 获取单元格的值函数 GetCellValue() 支持读取 inlineStr 内联类型单元格的值,相关 issue #208 和 #209
  • 添加图表函数 AddChart() 支持自定义图表尺寸
  • 支持创建三维、三维百分比、堆积、簇状、百分比堆积条形图和柱形图,相关 issue #160 和 #190
  • 新增支持为通过 AddPicture() 插入的图片设置超链接属性,相关 issue #185
  • 新增支持为单元格设置保护属性,相关 issue #191;
  • 图标数据系列现已支持设置逆序刻度和图表方向,并支持指定坐标轴刻度为自动、固定值以及最大值、最小值,相关 issue #202;

问题修复

  • 修复 DeleteSheet() 删除工作表时,因内部 activeTab 属性计算错误导致的文档损坏,解决 issue #165
  • 修复部分情况下读取列数量错误的问题,相关 issue #175
  • 兼容由 1C software 等电子表格应用程序创建的,内部共享字符表路径为 xl/SharedStrings.xml 的电子表格文档,相关 issue #188
  • 修复部分情况下内部函数 checkCellInArea() 解析合并单元格坐标时下标越界问题,相关 issue #206
  • 修复部分情况下设置字体失效的问题,相关 issue #222

性能优化

  • 提升 SetCellStyle() 设置单元格样式速度,优化内部检查行/列区域函数 checkCellInArea()
  • 内部字符串处理逻辑优化,使用 bytes 代替 string 降低 11% 内存使用,更多性能相关数据请参考 Performance Figures
Go
1
https://gitee.com/xurime/excelize.git
git@gitee.com:xurime/excelize.git
xurime
excelize
excelize

搜索帮助