使用POI給word中的表格增加行


需求:有一個給定的word文檔,文檔中有一個表格,該表格只有一個標題行。現在根據數據為表格增加行,並保留表格線條。

如下表格所示:

字段1 字段2 字段3 字段4 字段5 字段6

修改后的效果:

字段1 字段2 字段3 字段4 字段5 字段6
... ... ... ... ... ...
... ... ... ... ... ...
... ... ... ... ... ...

 

方案:使用POI讀取並操作word文檔。

 

代碼:

poi使用兩種方式操作word文檔,理論上兩種方式都是可以達到目標的,這里使用XWPFDocument方式實現表格的操作,參考以下代碼:

 

  1.  
    //讀取word源文件
  2.  
    FileInputStream fileInputStream = new FileInputStream("d:/xxx.docx");
  3.  
    // POIFSFileSystem pfs = new POIFSFileSystem(fileInputStream);
  4.  
    XWPFDocument document = new XWPFDocument(fileInputStream);
  5.  
    //獲取所有表格
  6.  
    List<XWPFTable> tables = document.getTables();
  7.  
    //這里簡單取第一個表格
  8.  
    XWPFTable table = tables.get( 0);
  9.  
    //獲取表頭,這里沒什么用,只是打印驗證下
  10.  
    XWPFTableRow header = table.getRow( 0);
  11.  
    //表格的插入行有兩種方式,這里使用addNewRowBetween,因為這樣會保留表格的樣式,就像我們在word文檔的表格中插入行一樣。注意這里不要使用insertNewTableRow方法插入新行,這樣插入的新行沒有樣式,很難看
  12.  
    table.addNewRowBetween( 0, 1);
  13.  
    //獲取到剛剛插入的行
  14.  
    XWPFTableRow row=table.getRow( 1);
  15.  
    //設置單元格內容
  16.  
    row.getCell( 0).setText("11111");
  17.  
    System.out.println(header.getCell( 0).getText());
  18.  
    fileInputStream.close();
  19.  
    //寫到目標文件
  20.  
    OutputStream output = new FileOutputStream("d:/xxx_new.docx");
  21.  
    document.write(output);
  22.  
    output.close();



小結:

上述代碼實現了類似模板的功能,將word源文件當做模板,然后往模板表格中插入數據,最后保存。

 

 

 

轉自:http://www.findsrc.com/java/detail/8669

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM