簡體   English   中英

將Microsoft Word XML文件導出到docx

[英]Export Microsoft word xml file into docx

我試圖不使用任何第三方庫來創建Microsoft Word文檔。 我想做的是:

  • 在Microsoft Word中創建模板文檔
  • 將其另存為XML文件
  • 讀取此XML文件並在PHP中填充數據

到目前為止,我已經能夠做到。 我想將其導出為* .docx格式。 但是,當我嘗試打開它時,它會引發異常。

錯誤消息:文件已損壞,無法打開

但是,當我將其另存為* .doc時,便可以打開word文檔。

任何想法,有什么問題。 我需要使用任何庫將其導出到docx文件嗎?

謝謝

Docx與doc不向后兼容。 Docx是一種壓縮格式: Docx標簽信息

我建議您為docx格式創建另一個模板,因為格式是如此不同。

另外,您可能需要檢查代碼是否編寫正確的編碼。 在將其轉換為正確的編碼之前,我得到的奇數字母在將其轉換為.docx格式時不兼容。 為此,我在輸入流中實現了它:

InputStreamReader isr= new InputStreamReader(template.getInputStream(entry), "UTF-8");
BufferedReader fileContents = new BufferedReader(isr);

我在輸入時使用了枚舉,但是“ UTF-8”將其設置為正確的格式並消除了奇數字符。 我還在某些xml的末尾鍵入了“ null”,因此我通過將其取出來消除了這種情況(我將每個文件的內容都放入一個字符串中,以便無論如何都可以對其進行操作):

String ending = "null";
while(sb.indexOf(ending) != -1){
sb.delete(sb.indexOf(ending), (sb.indexOf(ending) + ending.length())); 
}

sb是我放入的stringbuilder。 使用UTF-8可能已經解決了這個問題,但是我在實現編碼之前已將其修復,因此我考慮將其包括在內,以防最終成為問題。 我希望這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM