POI代码方式生成word

388 阅读1分钟

创建空白word

    XWPFDocument document = new XWPFDocument();
    String fileName = "白皮书.docx";
    response.setContentType("application/octet-stream");
    String encode = URLEncoder.encode(fileName, "UTF-8");
    response.setHeader("Content-disposition", "attachment;filename=" + encode);

创建表格

   XWPFTable table = document.createTable();//默认创建一个一行一列的表格
   XWPFTableRow row = table.getRow(0);//第一行
   XWPFTableCell cell = row.getCell(0);//第一列
   row.createCell();//创建新列
   table.createRow();//创建新行

设置cell居中

    cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
    CTTc cttc = cell.getCTTc();
    CTP ctp = cttc.getPList().get(0);
    CTPPr ctppr = ctp.getPPr();
    if (ctppr == null) {
        ctppr = ctp.addNewPPr();
    }
    CTJc ctjc = ctppr.getJc();
    if (ctjc == null) {
        ctjc = ctppr.addNewJc();
    }
    ctjc.setVal(STJc.CENTER); //水平居中

插入图片

    XWPFParagraph paragraph = cell.getParagraphs().get(0);
    paragraph.setAlignment(ParagraphAlignment.CENTER);
    paragraph.setWordWrapped(true);
    XWPFRun run = pictures.createRun();
    InputStream inputStream = _getImageInputStream();
    run.addPicture( inputStream, XWPFDocument.PICTURE_TYPE_JPEG
            , "123.jpg", Units.toEMU(300), Units.toEMU(150)); 
    inputStream.close();

行间距设置

    paragraph.setSpacingBetween(18,LineSpacingRule.EXACT);