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

时间:2010-05-17 15:17:56

标签: charts powerpoint openxml

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

到目前为止,我的代码是......

  1. 解压缩Powerpoint文件。
  2. 解压缩嵌入的Excel文件(ppt \ embeddings \ Microsoft_Office_Excel_Worksheet1.xlsx)
  3. 它成功地操作excel表中的数据并将其拉回。
  4. 打开并操作ppt \ charts \ chart1.xml
  5. 然后将Powerpoint压缩并传送给用户
  6. 这是一个显示空白图表的PowerPoint文件。但是,当我点击图表并转到编辑数据时,它会更新数据并显示正确的图表。

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

    数据中也存在一些舍入差异。但我觉得这不会导致空白图表。

    我需要编辑另一个文件吗?有没有人想知道我应该尝试什么呢?

1 个答案:

答案 0 :(得分:1)

这可能是axID值和舍入问题的组合。 Axis ID可能要求一个整数值,你可能正在提供一个/双。因此,chart1.xml中的缓存数据不知道如何显示。

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

或者,沿着相同的路线。在您的PowerPoint中打开生成的PPTX,一旦您右键单击并重新水化图表,另存为不同的文件名并将其与自动结果进行比较。