我正在使用apache poi从ppt文件中删除幻灯片。

HSLFSlideShow slideShow = new HSLFSlideShow(new HSLFSlideShowImpl(dir));
for (int i = 0; i < 5; i++) {
    slideShow.removeSlide(0);
}


我打印了所有幻灯片,然后看到前五张幻灯片都不见了。但是,当我打开我的ppt文件时,没有任何改变。前五张幻灯片仍然在那里。我该怎么办?

最佳答案

完成更改后,您需要将它们写出来以保存它们!该方法通常在所有格式中为write(OutputStream),对于HSLF write method here为javadocs

因此,只需将代码更改为如下所示:

HSLFSlideShow slideShow = new HSLFSlideShow(new HSLFSlideShowImpl(dir));
for (int i = 0; i < 5; i++) {
    slideShow.removeSlide(0);
}
FileOutputStream out = new FileOutputStream("changed.ppt");
slideShow.write(out);
out.close();


HSLF当前没有就地保存支持,也没有志愿者添加它,因此您必须保存到与打开它不同的文件中

07-27 23:07