簡體   English   中英

使用Apache POI Word JAVA編寫docx文件

[英]Write a docx file using Apache POI Word JAVA

我正在使用Apache POI Word在Java中創建docx文件。

現在我正在使用以下代碼

XWPFDocument document = new XWPFDocument();
  XWPFParagraph tmpParagraph = document.createParagraph();
  XWPFRun tmpRun = tmpParagraph.createRun();
  tmpRun.setText(newDocxData);

  try {
     document.write(new FileOutputStream(new File("C:\\test.docx")));
  } catch (FileNotFoundException ex) {
     Logger.getLogger(PersonnelFileHandlingStreamAttributesHandlerImpl.class.getName()).log(Level.SEVERE, null, ex);
  } catch (IOException ex) {
     Logger.getLogger(PersonnelFileHandlingStreamAttributesHandlerImpl.class.getName()).log(Level.SEVERE, null, ex);
  }

但這將全文放在一個段落下。

但是我想將給定的字符串原樣放入文檔中。

我嘗試將字符串轉換為輸入流並在創建文檔時傳遞它

XWPFDocument document = new XWPFDocument(inputstream);

但這也會產生錯誤。 有什么解決辦法嗎?

這是我要編寫的字符串的示例。

10-伊利諾伊州紹姆堡-美國xxx 2018-06-28

就業證明

這是為了證明John目前在xxx擔任經理。

約翰從00年12月7日開始在xxx工作。

當前工資是每月SalaryPerMonth SalaryCurrencyCode,每周工作40小時的100%。

這里的問題是您要檢索一個字符串中的所有文本。 您應該使用“ getBodyElements”解析文檔中的所有body元素,然后遍歷所有這些元素並為每個元素啟動一個段落。 這是如何執行此操作的示例:

 public static XWPFDocument MergeDocument(XWPFDocument source, XWPFDocument output){

        for(IBodyElement element : source.getBodyElements()) {
           if(element instanceof XWPFParagraph) {
                XWPFParagraph paragraph = (XWPFParagraph)element;
                if(paragraph.getStyleID()!=null){
                    XWPFStyles styles= output.createStyles();
                    XWPFStyles stylesdoc2= source.getStyles();
                    styles.addStyle(stylesdoc2.getStyle(paragraph.getStyleID()));
                }    
                XWPFParagraph x= output.createParagraph();
                x.setStyle(((XWPFParagraph) element).getStyle());
                XWPFRun runx=x.createRun();
                runx.setText(((XWPFParagraph) element).getText());
            }
        }
return output;
    }

暫無
暫無

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

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