我有一个幻灯片,其中有多个图表(多个条形图和折线图) 我需要使用 apache POI 库更新它们。到目前为止,我曾经每张幻灯片都有一个图表,并且我曾经使用下面的代码来获取图表来识别和更新值。
XSLFChart chart = null;
for(POIXMLDocumentPart part : mainSlide.getRelations()){
if(part instanceof XSLFChart){
chart = (XSLFChart) part;
break;
}
}
不确定如何识别特定图表,没有看到任何像我可以识别类似形状的方法
for(XSLFSlide slide:ppt.getSlides()){
for (XSLFShape shape : slide.getShapes()) {
if (shapeName.equals(shape.getShapeName()))
return slide;
}
}
我在 powerpoint 中为表格、文本框指定了名称,并且可以使用 shapename 在代码中检索,但没有看到图表的任何内容。任何人都可以帮助我吗?
最佳答案
在同事的帮助下,我找到了一种识别这一点的方法。
首先为 Power Point 打开布局中的图表命名>图表标题>图表上方,然后给出任意名称。要隐藏该标题,请保持较小的字体大小并将字体颜色设置为白色。
在java中添加代码如下
private XSLFChart getChartObject(XSLFSlide mainSlide,String chartName) throws IOException
{
XSLFChart chart = null;
for(POIXMLDocumentPart part : mainSlide.getRelations()){
if(part instanceof XSLFChart){
chart = (XSLFChart) part;
if(chart.getCTChart().getTitle()!=null && chart.getCTChart().getTitle().getTx()!=null){
if(chart.getCTChart().getTitle().getTx().getRich().getPList().get(0).getRList().get(0).getT().equals(chartName))
break;
}
}
}
return chart;
}
关于java - 如何使用 apache POI 检索 Power Point 幻灯片中的特定图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36780129/