POI创建表格

// Blank Document
XWPFDocument document = new XWPFDocument();

File desktopDir = FileSystemView.getFileSystemView().getHomeDirectory();
String desktopPath = desktopDir.getAbsolutePath(); //得到桌面路径

// Write the Document in file system
FileOutputStream out = new FileOutputStream(new File(desktopPath+"\\create_table.docx"));

// create paragraph
XWPFParagraph paragraph = document.createParagraph();
paragraph.setAlignment(ParagraphAlignment.valueOf(HSSFCellStyle.ALIGN_CENTER));
// Set Bold an Italic
XWPFRun title = paragraph.createRun();

title.setBold(true);
title.setFontFamily("黑体");
title.setText("中心组学习");
title.addBreak();

// create table
XWPFTable table = document.createTable();

table.setWidth(1000);
// create first row
XWPFTableRow tableRowOne = table.getRow(0);

tableRowOne.getCell(0).setText("日期");
tableRowOne.getCell(0).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));
tableRowOne.addNewTableCell().setText("地点");
tableRowOne.getCell(1).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(2000));
tableRowOne.addNewTableCell().setText("主持人");
tableRowOne.getCell(2).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));
tableRowOne.addNewTableCell().setText("参加人数");
tableRowOne.getCell(3).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));
tableRowOne.addNewTableCell().setText("时长");
tableRowOne.getCell(4).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));

// create second row
XWPFTableRow tableRowTwo = table.createRow();
tableRowTwo.getCell(0).setText("");
tableRowTwo.getCell(0).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));
tableRowTwo.getCell(1).setText("");
tableRowTwo.getCell(1).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(2000));
tableRowTwo.getCell(2).setText("");
tableRowTwo.getCell(2).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));
tableRowTwo.getCell(3).setText("");
tableRowTwo.getCell(3).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));
tableRowTwo.getCell(4).setText("");
tableRowTwo.getCell(4).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));

// create second row
XWPFTableRow tableRowThree = table.createRow();
tableRowThree.getCell(0).setText("学习内容");
tableRowThree.getCell(0).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));
tableRowThree.getCell(1).setText("");
tableRowThree.getCell(1).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(6500));
mergeCellsHorizontal(table,2,1,4);

// create second row
XWPFTableRow tableRowFor = table.createRow();
tableRowFor.getCell(0).setText("现场抓拍");
tableRowFor.getCell(0).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));
tableRowFor.getCell(1).setText("");
tableRowFor.getCell(1).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(6500));
mergeCellsHorizontal(table,3,1,4);

// create second row
XWPFTableRow tableRowFive = table.createRow();
tableRowFive.getCell(0).setText("印证资料");
tableRowFive.getCell(0).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));
tableRowFive.getCell(1).setText("");
tableRowFive.getCell(1).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(6500));
mergeCellsHorizontal(table,4,1,4);

// create second row
XWPFTableRow tableRowSix = table.createRow();
tableRowSix.getCell(0).setText("记录人");
tableRowSix.getCell(0).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(1500));
tableRowSix.getCell(1).setText("");
tableRowSix.getCell(1).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(2000));
tableRowSix.getCell(2).setText("审核人");
tableRowSix.getCell(2).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(2000));
tableRowSix.getCell(3).setText("");
tableRowSix.getCell(3).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(2500));
mergeCellsHorizontal(table,5,3,4);





document.write(out);
out.close();}
/**
 * @Description: 跨列合并
 */
public static   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
            cell.getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);
        } else {
            // Cells which join (merge) the first one, are set with CONTINUE
            cell.getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);
        }
    }
}

效果图:

2a62f9d07214eb5847a7e58d3c57a09b57a.jpg

转载于:https://my.oschina.net/u/4066574/blog/3041363

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值