2013-12-16 40 views
0

我有實質上包含以下代碼:Apache POI。如何流DOCX/XWPFDocument數據到ZipOutputSream

ZipOutputStream out = new ZipOutputStream(outputStream); 

for (Person person: people) { 

     XWPFDocument document = new XWPFDocument(); 
     out.putNextEntry(new ZipEntry(person.getName())); 
     document.write(out); 
     out.closeEntry(); 
} 

當我運行此,生成壓縮文件,但裏面的docx文件分割成它的組成部分,而且它不不會生成多個docx擴展文件。

是否有可能使用apache poi流多個docx文件到一個zip文件?

+2

的DOCX已經被壓縮,所以你只是想將它們打包到一起?如果是這樣,你不需要打開文檔來做到這一點,只需將它們作爲單個文件壓縮即可。 – awm

+0

@awm是的,我想創建一個.zip文件,裏面裝滿了docx文件。我也不確定如何更改生成的docx文件的名稱。 – user1740752

回答

0

您不需要POI .. POI用於反彙編2010+ Office文件以在內部操作它們。

你只需要使用到它們壓縮:http://www.programcreek.com/java-api-examples/index.php?api=java.util.zip.ZipEntry

+0

嗨,謝謝你的回答。我的示例代碼是有點人爲的,因爲我只想包括本質。然而,我想編輯'people'集合中每個'person'的文檔,然後將所有編輯過的文檔保存爲一個新的文件名到一個zip文件中。 – user1740752

+0

理論上講,您可以使用POI中的DocumentOutputStream一步完成所有操作,並將其作爲實體添加爲ZipInputStream,但從實際和調試的角度來看,這是非常糟糕的選擇。 – awm