Java 如何使用Apache POI刷新pptx中的嵌入内容?

Java 如何使用Apache POI刷新pptx中的嵌入内容?,java,apache-poi,powerpoint,xslf,Java,Apache Poi,Powerpoint,Xslf,亲爱的各位 我正在使用ApachePOI,并尝试使用Powerpoint报告自动化一些任务。更准确地说,我想从代码中更新.pptx演示文稿中的数据,包括嵌入的Excel电子表格(显示为表格) 到目前为止,我已经设法更新了嵌入式电子表格本身,但pptx演示文稿没有“刷新”:当我打开文件时,旧值可见,但当我双击网格时(进入“编辑”模式),新值显示出来 根据Gagravarr在这篇文章中的评论,这种行为是意料之中的:底层文件确实已更新,但预渲染版本仍然存在 因此,我想“刷新”预渲染版本:您知道如何使用

亲爱的各位

我正在使用ApachePOI,并尝试使用Powerpoint报告自动化一些任务。更准确地说,我想从代码中更新.pptx演示文稿中的数据,包括嵌入的Excel电子表格(显示为表格)

到目前为止,我已经设法更新了嵌入式电子表格本身,但pptx演示文稿没有“刷新”:当我打开文件时,旧值可见,但当我双击网格时(进入“编辑”模式),新值显示出来

根据Gagravarr在这篇文章中的评论,这种行为是意料之中的:底层文件确实已更新,但预渲染版本仍然存在

因此,我想“刷新”预渲染版本:您知道如何使用ApachePOI实现这一点吗?(或者至少“zap”这个预渲染版本,希望Powerpoint在我打开幻灯片时重新渲染)

我不熟悉POI用户列表档案,所以如果答案在哪里,我很抱歉。非常感谢,并致以最良好的问候

这是我目前的代码:

//打开幻灯片
FileInputStream FileInputStream=新的FileInputStream(sourceFilePath);
xmlsideshow slideShow=新的xmlsideshow(fileInputStream);
fileInputStream.close();
//获取PackagePart(缩短版)
PackagePart excelEmbedding=slideshow.getAllEmbedds().get(3);
//更新基础电子表格(缩短版)
InputStream is=excelEmbedding.getInputStream();
XSSF工作簿=新XSSF工作簿(is);
XSSFRow row=sheet.getRow(1);
XSSFCell cell=row.getCell(3);
cell.setCellValue(“测试”);
OutputStream os=excelEmbedding.getOutputStream();
工作簿。编写(os);
os.close();
workbook.close();
//保存更改
FileOutputStream FileOutputStream=新的FileOutputStream(targetFilePath);
slideShow.write(fileOutputStream);
fileOutputStream.close();