使用aspose.cells保存工作簿后,图表数据格式被修改

原来显示百分比的数据,被修改为了小数点,这应该是个bug,预期应该不修改已有格式,示例文件见附件。
图表数据格式对比.zip (775.7 KB)

    public static void outputpdf()
    {


       
        Workbook workbook = new Workbook("D:\\图表数据格式变化.xlsm");


        workbook.Save("D:\\图表数据格式变化_output.xlsm");


    }

@lingtian

概要
在仅执行 Workbook workbook = new Workbook(...); workbook.Save(...); 的情况下,部分用户发现 Excel 工作簿中的图表数据标签原本使用的百分比格式在保存后变成了小数形式。下面提供几种排查和处理思路。

排查步骤

  1. 确认 Aspose.Cells 版本
Console.WriteLine(Workbook.Version); // 记录返回的版本号

将使用的版本号记录下来,便于后续沟通。

  1. 在当前或最新版本中复现
  • 通过 NuGet 更新到最新的 Aspose.Cells(如果可能)。
  • 运行最小示例代码,保存后检查图表标签是否仍为百分比。
using Aspose.Cells;

var wb = new Workbook(@"D:\图表数据格式变化.xlsm");
wb.Save(@"D:\图表数据格式变化_output.xlsm");
  1. 如果复现,尝试显式设置数据标签的数值格式
    在保存前为图表系列的数据标签指定百分比格式(前提是对应属性在所用版本中可用)。示例代码仅供参考,实际属性名称请参考对应版本的 API 文档。
var sheet = wb.Worksheets[0];
var chart = sheet.Charts[0]; // 假设只有一个图表
var series = chart.NSeries[0]; // 第一个系列

// 设置数据标签的显示格式为百分比
series.DataLabels.NumberFormat = "0%"; // 如属性不存在,请查阅文档获取正确写法
  1. 如仍未生效,可在保存后重新加载并再次设置
var wbReload = new Workbook(@"D:\图表数据格式变化_output.xlsm");
var chartReload = wbReload.Worksheets[0].Charts[0];
chartReload.NSeries[0].DataLabels.NumberFormat = "0%";
wbReload.Save(@"D:\图表数据格式变化_fixed.xlsm");

后续处理

  • 将使用的 Aspose.Cells 版本、操作系统、.NET 运行时信息以及上述复现代码整理成一份问题报告。
  • 将报告提交给 Aspose.Cells 技术支持或产品团队,说明在保存工作簿时图表数据标签的格式被意外更改,期待在后续版本中改进此行为。

行动清单

  1. 记录并提供当前使用的 Aspose.Cells 版本号。
  2. 在最新版本中执行步骤 2,确认问题是否仍然出现。
  3. 如问题仍在,按步骤 3‑4 手动设置 NumberFormat 以确保保存后显示为百分比。
  4. 将所有信息(版本、复现代码、系统环境等)提交给 Aspose 技术支持,以便进一步诊断和修复。

@lingtian
通过使用样例代码和文件在最新版本v25.11上进行测试,我们可以复现问题。在重新保存样例文件后,图表数据格式发生改变。

我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。

问题单号:CELLSNET-59474

@lingtian
这个问题已被修复,预计下周发布的25.12版本会包含本次的修复内容.
新版本发布后,我们会在这里通知您.