poi導出word表格的問題



poi導出word表格的問題,不能直接用,但是很有參考價值,對poi操作word 表格的一般操作能夠實現


poi導出word表格jar包

poi-3.9-20121203.jar

poi-ooxml-3.9-20121203.jar

poi-ooxml-schemas-3.9-20121203.jar

poi-scratchpad-3.9.jar

xbean.jar


 List<String> CONDITIONlist = new ArrayList();

CONDITIONlist .add("fdsajfdsfjdsfjldjsfds");

CONDITIONlist .add("sjfkljdslkfdsfdsafdsf");

 XWPFTable table = doc.createTable(16, 4);

//設置表格寬度
   CTTbl ttbl = table.getCTTbl();  
       CTTblPr tblPr = ttbl.getTblPr() == null ? ttbl.addNewTblPr() : ttbl.getTblPr();  
       CTTblWidth tblWidth = tblPr.isSetTblW() ? tblPr.getTblW() : tblPr.addNewTblW();  
       CTJc cTJc=tblPr.addNewJc();  
       cTJc.setVal(STJc.Enum.forString("center"));  
       tblWidth.setW(new BigInteger("8000"));  
       tblWidth.setType(STTblWidth.DXA); 


       
       List<XWPFTableRow> rows = table.getRows(); 
     XWPFTableRow row;  
     List<XWPFTableCell> cells;  
     XWPFTableCell cell;  
     int rowSize = rows.size();  
     int cellSize;  
     for (int i=0; i<rowSize; i++) {
     row = rows.get(i);
        //設置行的高度  
        row.setHeight(500);  //設置行高
        cells = row.getTableCells();  //獲得單元格
     cellSize = cells.size();  

//分列設置單元格寬度或者說列寬
        for (int j=0; j<cellSize; j++) {  
           cell = cells.get(j); 
          CTTcPr cellPr = cell.getCTTc().addNewTcPr(); 
     CTTblWidth cellw = cellPr.addNewTcW();
     cellw.setType(STTblWidth.DXA);
     if (j == 3||j==1) {  
               //設置寬度  
               cellPr.addNewTcW().setW(BigInteger.valueOf(2700));  
           }else cellPr.addNewTcW().setW(BigInteger.valueOf(1300));
        }

        }
     
//   setTableGridCol(table,a);
   // 設置上下左右四個方向的距離,可以將表格撐大
   /*table.setCellMargins(20, 20, 20, 20);
   table.setWidth(500);
   table.setRowBandSize(50);
   table.setColBandSize(30);*/
   List<XWPFTableCell> tableCells = table.getRow(0).getTableCells();
   tableCells.get(0).setText("事項編碼");
   tableCells.get(1).setText(""fdsa);
  
   List<XWPFTableCell> tableCellsq = table.getRow(1).getTableCells();
   tableCellsq.get(0).setText("實施主體");
   tableCellsq.get(1).setText("fdsfdsa");
   tableCellsq.get(2).setText("承辦機構");
   tableCellsq.get(3).setText("fdsafdsafdsa");
   
   List<XWPFTableCell> tableCellsq3 = table.getRow(2).getTableCells();
   tableCellsq3.get(0).setText("內部事項編碼");
   tableCellsq3.get(1).setText("fdsafdsa");
   tableCellsq3.get(2).setText("事項名稱");
   tableCellsq3.get(3).setText("fdsafdsa");
   
   List<XWPFTableCell> tableCellsq4 = table.getRow(3).getTableCells();
   tableCellsq4.get(0).setText("服務對象");
   tableCellsq4.get(1).setText"(SUB_TYPE");
   tableCellsq4.get(2).setText("服務主題");
   tableCellsq4.get(3).setText("TITLE_NAME");
   tableCells.get(2).setText("服務分類");
   tableCells.get(3).setText("SUBTYPE");
   
   List<XWPFTableCell> tableCellsq5 = table.getRow(4).getTableCells();
   tableCellsq5.get(0).setText("法定期限");
   tableCellsq5.get(1).setText("String.valueOf(LAW_TIME)");
   tableCellsq5.get(2).setText("承諾期限");
   tableCellsq5.get(3).setText("String.valueOf(AGREE_TIME)");
   
   List<XWPFTableCell> tableCellsq6 = table.getRow(5).getTableCells();
   tableCellsq6.get(0).setText("是否收費");
   tableCellsq6.get(1).setText(IS_CHARGE);
   tableCellsq6.get(2).setText("辦件類型");
   tableCellsq6.get(3).setText(ASSORT);
   
   List<XWPFTableCell> tableCellsq7 = table.getRow(6).getTableCells();
   tableCellsq7.get(0).setText("是否可網上辦理");
   tableCellsq7.get(1).setText("IS_ONLINE");
   tableCellsq7.get(2).setText("時都進駐大廳");
   tableCellsq7.get(3).setText("IS_IN_HALL");
   
   List<XWPFTableCell> tableCellsq8 = table.getRow(7).getTableCells();
   tableCellsq8.get(0).setText("備註信息");
   tableCellsq8.get(1).setText("REMARK");
   mergeCellsHorizontal( table, 7, 1,3);
   
   List<XWPFTableCell> tableCellsq9 = table.getRow(8).getTableCells();
   tableCellsq9.get(0).setText("受理條件");
   //tableCellsq9.get(1).setText("CONDITION");

//單元格內換行
   XWPFParagraph para =tableCellsq9.get(1).getParagraphs().get(0);
   para.setAlignment(ParagraphAlignment.LEFT);
   for(String text : CONDITIONlist){
       XWPFRun run = para.createRun();
       run.setText(text);
       run.addBreak();
   }

    //合併單元格
   mergeCellsHorizontal( table, 8, 1,3);


/**
* @Description: 跨列合併
*/
public void mergeCellsHorizontal(XWPFTable table, int row, int fromCell,
int toCell) {
for (int cellIndex = fromCell; cellIndex <= toCell; cellIndex++) {
XWPFTableCell cell = table.getRow(row).getCell(cellIndex);
if (cellIndex == fromCell) {
// The first merged cell is set with RESTART merge value
getCellCTTcPr(cell).addNewHMerge().setVal(STMerge.RESTART);
//getCellCTTcPr(cell).addNewHMerge().setVal(STMerge.RESTART);
} else {
// Cells which join (merge) the first one,are set with CONTINUE
getCellCTTcPr(cell).addNewHMerge().setVal(STMerge.CONTINUE);
}
}
}


 
   


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章