在Microsoft PowerPoint中打开PPTX文件时,如何通过Java编辑该文件?
关于 正在开发的Java应用程序所需的功能是上面的PowerPoint版本:使用Java创建幻灯片并添加从捕获的应用程序数据生成的内容,然后将幻灯片添加到当前在Microsoft PowerPoint中打开的现有PowerPoint文件中 如果没有打开PowerPoint文件,Java应用程序将首先在必要时打开Microsoft PowerPoint,然后创建一个新的空PowerPoint文件,然后在Microsoft PowerPoint中打开它 例如,我的应用程序将创建在Microsoft PowerPoint中打开PPTX文件时,如何通过Java编辑该文件?,java,java-8,apache-poi,powerpoint,powerpoint-2013,Java,Java 8,Apache Poi,Powerpoint,Powerpoint 2013,关于 正在开发的Java应用程序所需的功能是上面的PowerPoint版本:使用Java创建幻灯片并添加从捕获的应用程序数据生成的内容,然后将幻灯片添加到当前在Microsoft PowerPoint中打开的现有PowerPoint文件中 如果没有打开PowerPoint文件,Java应用程序将首先在必要时打开Microsoft PowerPoint,然后创建一个新的空PowerPoint文件,然后在Microsoft PowerPoint中打开它 例如,我的应用程序将创建Test.pptx。然
Test.pptx
。然后,应用程序将在Microsoft PowerPoint应用程序中打开它。接下来,我添加幻灯片。操作成功,不会引发任何异常。但是,这些更改不会反映在Microsoft PowerPoint视图中
- 如果在Microsoft PowerPoint中关闭文件并再次打开,则可以看到更新的更改。然而,这不是我想要的用户必须能够连续添加新幻灯片,并看到这些幻灯片动态更新到Microsoft PowerPoint视图中,而无需在每次添加幻灯片后重新启动Microsoft PowerPoint应用程序。
- 我注意到,在Microsoft PowerPoint中打开PowerPoint文件时,会在我的桌面上创建一个
临时文件。我试图让Java应用程序将生成的幻灯片直接添加到~$Test.pptx
中,但~Test.pptx
随后被抛出FileNotFoundException:该进程无法访问该文件,因为它正被另一个进程使用。
public class EditPresentation {
public static void main(String ar[]) throws IOException{
//opening an existing slide show
File file = new File("example1.pptx");
FileInputStream inputstream=new FileInputStream(file);
XMLSlideShow ppt = new XMLSlideShow(inputstream);
//adding slides to the slodeshow
XSLFSlide slide1 = ppt.createSlide();
XSLFSlide slide2 = ppt.createSlide();
//saving the changes
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);
System.out.println("Presentation edited successfully");
out.close();
}
}
java是强制性的吗。。。我会尝试打开/显示/更改Powerpoint ActveX对象,例如在C#上。因此,正如链接的答案所说,POI不起作用。不幸的是,它必须是Java。这不可能通过Apache POI实现,因为Microsoft Powerpoint会锁定文件,并且不允许其他进程对其进行更改。@thegreatjedi您找到解决此问题的方法了吗?我也有同样的问题