代码之家  ›  专栏  ›  技术社区  ›  mscccc Jonas Schubert Erlandsson

如何用.NET更改PowerPoint图表数据?

  •  2
  • mscccc Jonas Schubert Erlandsson  · 技术社区  · 16 年前

    我有一个PowerPoint模板,其中包含一张幻灯片,该幻灯片上有一个图表。我希望能够使用.NET操作该图表的数据。

    到目前为止,我有代码…

    1. 解压缩PowerPoint文件。
    2. 解压缩嵌入的Excel文件(ppt\embeddings\microsoft_office_excel_worksheet1.xlsx)
    3. 它成功地操作了Excel工作表中的数据并将其压缩备份。
    4. 打开并操作ppt\charts\chart1.xml
    5. 然后将PowerPoint压缩并传递给用户

    结果是一个PowerPoint文件显示空白图表。但当我单击图表并转到编辑数据时,它会更新数据并显示正确的图表。

    我相信我的问题是 CART1.XML 我正在生成。我将生成的版本与PowerPoint创建的版本进行了比较,它们几乎相同。唯一的区别在于 <c:crossAx/> <c:axId/> .

    数据中还有一些舍入差异。但我不认为这会导致空白图表。

    是否还有其他文件需要编辑?有人知道我还应该做些什么吗?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Todd Main    16 年前

    它可能是axid值和舍入问题的组合。轴ID可能要求一个整数值,而您可能提供一个单/双数值。所以chart1.xml中的缓存数据不知道如何显示。

    尝试与以前相同的操作,但不要在PowerPoint中打开结果,而是将.pptx扩展名更改为.zip,解压缩,然后手动修复舍入问题以匹配原始舍入。然后压缩备份,将扩展名改回.pptx并在PowerPoint中打开。如果这解决了显示问题,您可以确认这是舍入问题。

    或者,沿着同一条线。像以前一样在PowerPoint中打开生成的pptx,右键单击并重新水化图表后,将其另存为其他文件名,并将其与自动结果进行比较。