如何使用apache POI在包含rowspan和colspan的ms word doc中创建表?

时间:2012-12-16 13:51:27

标签: java apache-poi

我正在使用APACHE POI来创建包含表格的word文档。该表如下所示,我想创建带有rowspan和colspan的单元格(如图所示)。

enter image description here

是否可以使用APACHE POI?

是否还有其他任何java库。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:3)

你可以试试这个。

    public class Word2Doc {
   public static void main(String aaa[]){
System.out.println("This is Word To Document Class");

File file = null; 
       FileOutputStream fos = null; 
       XWPFDocument document = null; 
       XWPFParagraph para = null; 
       XWPFRun run = null; 
       try { 
           // Create the first paragraph and set it's text. 
           document = new XWPFDocument(); 
           para = document.createParagraph(); 

           para.setAlignment(ParagraphAlignment.CENTER); 

           para.setSpacingAfter(100); 

           para.setSpacingAfterLines(10);
           run = para.createRun(); 
           run.addBreak();    // similar to new line
           run.addBreak();

           XWPFTable table = document.createTable(4, 3);

           table.setRowBandSize(1);
           table.setWidth(1);
           table.setColBandSize(1);
           table.setCellMargins(1, 1, 100, 30);

           table.setStyleID("finest");


           table.getRow(1).getCell(1).setText("EXAMPLE OF TABLE");
           table.getRow(2).getCell(1).setText("fine");
           XWPFParagraph p1 = table.getRow(0).getCell(0).getParagraphs().get(0);
           p1.setAlignment(ParagraphAlignment.CENTER);
                   XWPFRun r1 = p1.createRun();
                   r1.setBold(true);
                   r1.setText("Test Name");
                   r1.setItalic(true);
                   r1.setFontFamily("Courier");
                   r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH);
                   r1.setTextPosition(100);

          //Locating the cell values
                    table.getRow(0).getCell(1).setText("Value"); 
                    table.getRow(0).getCell(2).setText("Normal Ranges"); 

                   table.getRow(2).getCell(2).setText("numeric values");

                    table.setWidth(120);

           file = new File("c:\\nwhpe.docx"); 
           if(file.exists())
               file.delete();


           FileOutputStream out = new FileOutputStream(file);
           document.write(out);
           out.close();
       } catch(Exception e){e.printStackTrace();}
    }

       }