POI导出含有table的word

package com.poi.excel.wordexcel;

import org.apache.poi.xwpf.usermodel.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author qixing.chen
 * @Date 2020/11/19 9:53 上午
 */
public class WordExportController2 {

    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        FileOutputStream outputStream = new FileOutputStream(new File("/Users/chen/Downloads/testXXXXXXXXXXX.docx"));

        //添加标题
        XWPFParagraph titleParagraph = document.createParagraph();
        //设置段落居中
        titleParagraph.setAlignment(ParagraphAlignment.CENTER);

        XWPFRun titleParagraphRun = titleParagraph.createRun();
        titleParagraphRun.setText("哈哈哈哈");
        titleParagraphRun.setColor("000000");
        titleParagraphRun.setFontSize(20);

        XWPFTable ComTable = document.createTable();

        CTTblWidth comTableidth = ComTable.getCTTbl().addNewTblPr().addNewTblW();
        comTableidth.setType(STTblWidth.DXA);
        comTableidth.setW(BigInteger.valueOf(9072));

        //表头标题
        List<String> list = new ArrayList<>();
        list.add("第一列");
        list.add("第二列");
        list.add("第三列");
        list.add("第四列");
        list.add("第五列");
        XWPFTableRow rowHead = ComTable.getRow(0);
        XWPFParagraph cellParagraph = rowHead.getCell(0).getParagraphs().get(0);
        cellParagraph.setAlignment(ParagraphAlignment.CENTER); //设置表头单元格居中
        XWPFRun cellParagraphRun  = cellParagraph.createRun();
        cellParagraphRun.setFontSize(14); //设置表头单元格字号
        cellParagraphRun.setFontFamily("仿宋_GB2312");//设置字体
        cellParagraphRun.setText(list.get(0));
        for (int i = 1; i < list.size(); i++) {

            cellParagraph = rowHead.addNewTableCell().getParagraphs().get(0);
            cellParagraph.setAlignment(ParagraphAlignment.CENTER); //设置表头单元格居中
            cellParagraphRun  = cellParagraph.createRun();
            cellParagraphRun.setFontSize(14); //设置表头单元格居中
            cellParagraphRun.setFontFamily("仿宋_GB2312");//设置字体
            cellParagraphRun.setText(list.get(i));

        }

        //表身body
        List<String> listtt = new ArrayList<>();
        listtt.add("1");
        listtt.add("2");
        listtt.add("3");
        listtt.add("4");
        listtt.add("5");
        List<String> listttt = new ArrayList<>();
        listttt.add("11");
        listttt.add("22");
        listttt.add("33");
        listttt.add("44");
        listttt.add("55");
        List<List<String>> listt = new ArrayList<>();
        listt.add(listtt);
        listt.add(listtt);
        listt.add(listttt);
        listt.add(listttt);
        int rows = listt.size();
        for (int i = 0; i < rows; i++) {
            XWPFTableRow rowsContent = ComTable.createRow();
            System.out.println("00000000000");
            for (int j = 0; j < listt.get(i).size(); j++) {
                XWPFParagraph cellParagraphC = rowsContent.getCell(j).getParagraphs().get(0);
                XWPFRun cellParagraphRunC  = cellParagraphC.createRun();
                cellParagraphRunC.setFontSize(14); //设置表格内容字号
                cellParagraphRunC.setFontFamily("仿宋_GB2312");//设置字体
                cellParagraphRunC.setText(listt.get(i).get(j)+""); //单元格段落加载内容
            }
        }
        //表尾
        XWPFTableRow rowsFoot = ComTable.createRow();
        for (int i = 0; i < list.size(); i++){
            if(i == 0){
                XWPFParagraph cellParagraphCFoot = rowsFoot.getCell(i).getParagraphs().get(0);
                XWPFRun cellParagraphRunCFoot  = cellParagraphCFoot.createRun();
                cellParagraphRunCFoot.setFontSize(14); //设置表格内容字号
                cellParagraphRunCFoot.setFontFamily("仿宋_GB2312");//设置字体
                cellParagraphRunCFoot.setText("合计"); //单元格段落加载内容
            }else{
                XWPFParagraph cellParagraphCFoot = rowsFoot.getCell(i).getParagraphs().get(0);
                XWPFRun cellParagraphRunCFoot  = cellParagraphCFoot.createRun();
                cellParagraphRunCFoot.setFontSize(14); //设置表格内容字号
                cellParagraphRunCFoot.setFontFamily("仿宋_GB2312");//设置字体
                cellParagraphRunCFoot.setText("all"); //单元格段落加载内容
            }

        }


        document.write(outputStream);
        outputStream.close();
        System.out.println("create_table document written success.");
    }

}

 

 

字号‘bai八号’对应磅值du5
字号‘七号’对应磅值5.5
字号‘zhi小dao六zhuan’对应磅值6.5
字号‘六号’shu对应磅值7.5
字号‘小五’对应磅值9
字号‘五号’对应磅值10.5
字号‘小四’对应磅值12
字号‘四号’对应磅值14
字号‘小三’对应磅值15
字号‘三号’对应磅值16
字号‘小二’对应磅值18
字号‘二号’对应磅值22
字号‘小一’对应磅值24
字号‘一号’对应磅值26
字号‘小初’对应磅值36
字号‘初号’对应磅值42

  

posted @ 2020-11-28 16:10  qtqx  阅读(191)  评论(0)    收藏  举报