【问题标题】:How to replace DataXML from Slide Diagram in Powerpoint using Apache POI如何使用 Apache POI 从幻灯片中的幻灯片中替换 DataXML
【发布时间】:2015-06-05 12:13:56
【问题描述】:

我想用其他文件data.xml替换java中使用apache API的power point演示的一个data.xml文件

作为参考,我想用另一个 power point 文件替换以下文件。

以下是我尝试过的代码,但 xml 没有替换。使用此代码替换后,每次运行时,这两个文件都有不同的 XML

public static void main(String[] args) {
    // TODO Auto-generated method stub
    final String filename = "C:/Users/skhan/Desktop/game.pptx";
    final String filename1 = "C:/Users/skhan/Desktop/globe.pptx";

    try {


        XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(filename));
        OPCPackage pkg = ppt.getPackage();
        PackagePart data = pkg.getPart(
               PackagingURIHelper.createPartName("/ppt/diagrams/data1.xml"));
        InputStream data1Inp = data.getInputStream();

        XMLSlideShow ppt1 = new XMLSlideShow(new FileInputStream(filename1));
        OPCPackage pkg1 = ppt1.getPackage();
        PackagePart data11 = pkg1.getPart(
               PackagingURIHelper.createPartName("/ppt/diagrams/data1.xml"));
        InputStream data1Inp1 = data11.getInputStream();

        String data1String = GetData(data1Inp);
        String data2String = GetData(data1Inp1);



//i want to replace here
        PrintStream pr = new PrintStream(data.getOutputStream());
        pr.print(data2String);
        pr.close();


        System.out.println("Completed");


    } catch (Exception e) {

        e.printStackTrace();
    }

}


public static String GetData(InputStream input) throws Exception
{
    StringBuilder builder = new StringBuilder();
    int ch;
    while((ch = input.read()) != -1){
        builder.append((char)ch);
    }

    String theString = builder.toString();
    return theString;
}

【问题讨论】:

    标签: java xml apache powerpoint openxml


    【解决方案1】:

    为了保存文件,我在更改后添加了几行。 XMLSlideShow 必须在更改或添加后写入某个文件。

            File file =new File(filename);
            FileOutputStream out = new FileOutputStream(file);
            ppt.write(out);
            out.close();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 2010-11-24
      • 2017-10-25
      相关资源
      最近更新 更多