如何使用apache POI复制包含图表的幻灯片?

时间:2016-02-16 11:45:44

标签: java apache-poi powerpoint xslf

亲爱的,

我正在使用Apache POI,我想复制一张包含代码中几张图表的幻灯片。

下面的代码(受https://poi.apache.org/slideshow/xslf-cookbook.html#Merge启发)在幻灯片上没有图表时工作正常。

不幸的是,似乎图表不会与此方法重复:当我尝试打开生成的文件时,Powerpoint检测到问题,尝试修复它,但失败了,我得到空幻灯片。

我检查了基础XML文件(使用Open XML SDK),似乎图表本身(在文件夹/ppt/charts中)没有重复,而且关系文件(在文件夹{中) {1}})未完全更新。

这是我目前的代码:

/ppt/slides/_rels

你知道如何克隆幻灯片及其图表吗?

非常感谢,最诚挚的问候!

2 个答案:

答案 0 :(得分:2)

你不能。我试过试过,问题是复制不能处理图像或图表。

我不得不通过脚本手动复制文件。以下是步骤:

  • 找到幻灯片文件
  • 复制
  • 在XML文件中查找图表对象,并记下 relation Id
  • 在关系文件中,检查 relation Id
  • 指定的文件
  • 复制此文件
  • 您还必须复制新幻灯片的关系文件,并更新名称
  • 新幻灯片不可见,您必须更新 presentaion.xml
  • 请注意:如果您希望PPTX与Microsoft Powerpoint一起使用,您还必须复制相关的Excel工作簿(请参阅图表的关系文件)

答案 1 :(得分:0)

从Apache POI 4.0.0开始,问题中的原始代码将可以复制幻灯片。