java导出word

java导出word文档

需要的pom依赖

<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>ooxml-schemas</artifactId>
            <version>1.1</version>
        </dependency>

第一种类型

package com.ims.common.utils;

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.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ExportUtil1 {

    public static void main(String[] args) throws IOException {
        FileOutputStream out = new FileOutputStream(new File("E:\\create_table.docx"));
        String title = "Xxx-xx测试报告";
        String[] value_columns_home = new String[]{"Xx 型号:", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
        List<List<String>> contenthome = new ArrayList<>();
        List<List<String>> headhome = new ArrayList<>();
        List<String> rowhome1 = new ArrayList<>();
        rowhome1.add("Xx 类型:");
        rowhome1.add(" ");
        contenthome.add(rowhome1);
        List<String> rowhome2 = new ArrayList<>();
        rowhome2.add("Xx 编号:");
        rowhome2.add(" ");
        contenthome.add(rowhome2);
        List<String> rowhome3 = new ArrayList<>();
        rowhome3.add("测试单元:");
        rowhome3.add(" ");
        contenthome.add(rowhome3);
        List<String> rowhome4 = new ArrayList<>();
        rowhome4.add("测试人员:");
        rowhome4.add(" ");
        contenthome.add(rowhome4);
        List<String> rowhome5 = new ArrayList<>();
        rowhome5.add("地点:");
        rowhome5.add(" ");
        contenthome.add(rowhome5);
        List<String> rowhome6 = new ArrayList<>();
        rowhome6.add("日期:");
        rowhome6.add(" ");
        contenthome.add(rowhome6);
        headhome.addAll(contenthome);

        String[] value_columns_body = new String[]{"序号", "项目名称", "技术要求", "测量值", "单位", "结论"};
        List<List<String>> contentbody = new ArrayList<List<String>>();
        List<List<String>> head_body = new ArrayList<List<String>>();
        List<String> rowbody = new ArrayList<String>();
        rowbody.add("0");
        rowbody.add("1");
        rowbody.add("2");
        rowbody.add("3");
        rowbody.add("4");
        rowbody.add("5");
        contentbody.add(rowbody);
        List<String> rowbody1 = new ArrayList<String>();
        rowbody1.add("a");
        rowbody1.add("b");
        rowbody1.add("c");
        rowbody1.add("d");
        rowbody1.add("e");
        rowbody1.add("f");
        contentbody.add(rowbody1);
        List<String> rowbody2 = new ArrayList<String>();
        rowbody2.add("a");
        rowbody2.add("b");
        rowbody2.add("c");
        rowbody2.add("d");
        rowbody2.add("e");
        rowbody2.add("f");
        contentbody.add(rowbody2);
        head_body.addAll(contentbody);
        XWPFDocument document = exportWord(title, value_columns_home, headhome, value_columns_body, head_body);
        document.write(out);
        out.close();
        System.out.println("create_table document written success.");
    }

    /**
     * @param title
     * @param value_columns_home
     * @param list_home
     * @return XWPFDocument
     * @Date 2018年7月19日 上午11:19:04
     * @Description 导出word
     * @Fcunction exportWord
     */
    public static XWPFDocument exportWord(String title, String[] value_columns_home, List<List<String>> list_home,
                                          String[] value_columns_body, List<List<String>> list_body) {

        XWPFDocument doc = new XWPFDocument();

        //换行用
        XWPFParagraph titleParagreph0 = doc.createParagraph();
        XWPFRun run = titleParagreph0.createRun();
        for (int i = 0; i < 6; i++) {
            run.setText("\r");
        }

        //添加标题
        XWPFParagraph titleParagraph = doc.createParagraph();
        //设置段落居中
        titleParagraph.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun titleParagraphRun = titleParagraph.createRun();
        titleParagraphRun.setText(title);
        titleParagraphRun.setColor("000000");
        titleParagraphRun.setFontSize(22);
        titleParagraphRun.setText("\r");
        titleParagraphRun.setText("\r");
        titleParagraphRun.setText("\r");


        //文档首页基本信息表格
        createHome(doc, value_columns_home, list_home);
        //下一页
        createNextPage(title, doc);
        //创建word文档主体的表格
        createBody(doc, value_columns_body, list_body);

        return doc;
    }

    /**
     * 创建文档首页的表格
     *
     * @param doc
     * @param value_columns_home
     * @param lists_home
     */
    public static void createHome(XWPFDocument doc, String[] value_columns_home, List<List<String>> lists_home) {
        //基本信息表格
        XWPFTable infoTable = doc.createTable();
        //去表格边框
        infoTable.getCTTbl().getTblPr().unsetTblBorders();

        //列宽自动分割
//        CTTblWidth comTableWidth = infoTable.getCTTbl().addNewTblPr().addNewTblW();
//        comTableWidth.setType(STTblWidth.DXA);
//        comTableWidth.setW(BigInteger.valueOf(8327));
        //设置表格宽度
//        infoTable.setCellMargins(100, 100, 100, 100);
        CTTbl ctTbl = infoTable.getCTTbl();
        CTTblGrid ctTblGrid = ctTbl.addNewTblGrid();
        int[] colWidths = new int[]{1800, 5000};
        for (int i : colWidths) {
            CTTblGridCol gridCol = ctTblGrid.addNewGridCol();
            gridCol.setW(new BigInteger(i+""));
        }

        //表头(表格第一行第一列的值)
        XWPFTableRow comTableRowOne = infoTable.getRow(0);
//        comTableRowOne.setHeight(20);
        XWPFParagraph cellParagraph = comTableRowOne.getCell(0).getParagraphs().get(0);
        cellParagraph.setAlignment(ParagraphAlignment.RIGHT);//设置表头单元格右对齐
        XWPFRun cellParagraphRun = cellParagraph.createRun();
        cellParagraphRun.setFontSize(16);//设置表头单元格字号
        cellParagraphRun.setBold(true);//设置表头单元格加粗
        cellParagraphRun.setText(value_columns_home[0]);//单元格内容加载
        //表头(从第一行第二列开始填充第一行剩余的列的值)
        for (int i = 1; i < value_columns_home.length; i++) {
            cellParagraph = comTableRowOne.addNewTableCell().getParagraphs().get(0);
            cellParagraph.setAlignment(ParagraphAlignment.CENTER);//设置表头单元格居中
            cellParagraphRun = cellParagraph.createRun();
            cellParagraphRun.setFontSize(16);//设置表头单元格字号
            cellParagraphRun.setBold(true);//设置表头单元格加粗
            cellParagraphRun.setText(value_columns_home[i]);//单元格内容加载
        }

        //表格内容(从表格第二行开始读取每一行每一列的值)
        for (int i = 0; i < lists_home.size(); i++) {
            XWPFTableRow rowContent = infoTable.createRow();
            for (int j = 0; j < lists_home.get(i).size(); j++) {
                XWPFParagraph cellParagrephC = rowContent.getCell(j).getParagraphs().get(0);
                if (j % 2 == 0) {
                    cellParagrephC.setAlignment(ParagraphAlignment.RIGHT);//设置表格内容右对齐
                    XWPFRun cellParagrephCRun = cellParagrephC.createRun();
                    cellParagrephCRun.setFontSize(16);//设置表格内容字号
                    cellParagrephCRun.setBold(true);//设置表格内容加粗
                    cellParagrephCRun.setText(lists_home.get(i).get(j) + "");//单元格内容加载
                } else {
                    cellParagrephC.setAlignment(ParagraphAlignment.CENTER);//设置表格内容居中
                    XWPFRun cellParagrephCRun = cellParagrephC.createRun();
                    cellParagrephCRun.setFontSize(16);//设置表格内容字号
                    cellParagrephCRun.setBold(true);//设置表格内容加粗
                    cellParagrephCRun.setText(lists_home.get(i).get(j) + "");//单元格内容加载
                }
            }
        }

    }

    /**
     * 创建下一页
     *
     * @param title
     * @param doc
     */
    public static void createNextPage(String title, XWPFDocument doc) {
        XWPFParagraph paragraph = doc.createParagraph();
        //设置从下一页开始
        paragraph.setPageBreak(true);
        //设置段落居中
        paragraph.setAlignment(ParagraphAlignment.CENTER);
        XWPFRun paragraphRun = paragraph.createRun();
        paragraphRun.setText(title);
        paragraphRun.setColor("000000");
        paragraphRun.setFontSize(16);
    }

    /**
     * 创建word文档主体的表格
     *
     * @param doc
     * @param value_columns_body
     * @param lists_body
     */
    public static void createBody(XWPFDocument doc, String[] value_columns_body, List<List<String>> lists_body) {
        //表格
        XWPFTable ComTable = doc.createTable();

        //列宽自动分割
        CTTblWidth comTableWidth = ComTable.getCTTbl().addNewTblPr().addNewTblW();
        comTableWidth.setType(STTblWidth.DXA);
        comTableWidth.setW(BigInteger.valueOf(8327));

        //表头(表格第一行第一列的值)
        XWPFTableRow comTableRowOne = ComTable.getRow(0);
//        comTableRowOne.setHeight(20);
        XWPFParagraph cellParagraph = comTableRowOne.getCell(0).getParagraphs().get(0);
        cellParagraph.setAlignment(ParagraphAlignment.CENTER);//设置表头单元格居中
        XWPFRun cellParagraphRun = cellParagraph.createRun();
        cellParagraphRun.setFontSize(16);//设置表头单元格字号
        cellParagraphRun.setBold(true);//设置表头单元格加粗
        cellParagraphRun.setText(value_columns_body[0]);//单元格内容加载
        //表头(从第一行第二列开始填充第一行剩余的列的值)
        for (int i = 1; i < value_columns_body.length; i++) {
            cellParagraph = comTableRowOne.addNewTableCell().getParagraphs().get(0);
            cellParagraph.setAlignment(ParagraphAlignment.CENTER);//设置表头单元格居中
            cellParagraphRun = cellParagraph.createRun();
            cellParagraphRun.setFontSize(16);//设置表头单元格字号
            cellParagraphRun.setBold(true);//设置表头单元格加粗
            cellParagraphRun.setText(value_columns_body[i]);//单元格内容加载
        }

        //表格内容(从表格第二行开始读取每一行每一列的值)
        for (int i = 0; i < lists_body.size(); i++) {
            XWPFTableRow rowContent = ComTable.createRow();
            for (int j = 0; j < lists_body.get(i).size(); j++) {
                XWPFParagraph cellParagrephC = rowContent.getCell(j).getParagraphs().get(0);
                if (j != 1 && j != 2) {
                    cellParagrephC.setAlignment(ParagraphAlignment.CENTER);//设置表格内容居中
                }
                XWPFRun cellParagrephCRun = cellParagrephC.createRun();
                cellParagrephCRun.setFontSize(16);//设置表格内容字号
//                cellParagrephCRun.setBold(true);//设置表格内容加粗
                cellParagrephCRun.setText(lists_body.get(i).get(j) + "");//单元格内容加载
            }
        }

    }

    /**
     * @param str
     * @return boolean
     * @Date 2018年7月19日 上午11:19:21
     * @Description 判断是否是整数
     * @Fcunction isNumeric
     */
    public static boolean isNumeric(String str) {
        if (str.indexOf(".") > 0) {
            return false;
        }
        return true;
    }

    /**
     * @param jnjhzh
     * @param trimpro
     * @param temp
     * @return List<List < String>>
     * @Date 2018年7月19日 上午11:44:48
     * @Description 正式计划草案获取前两行
     * @Fcunction getCzzscaList
     */
    public static List<List<String>> getCzzscaList(String jnjhzh, String trimpro, String temp) {
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> l1 = new ArrayList<String>(); //固定第一行
        l1.add("");
        l1.add("年度总计");
        l1.add("");
        l1.add("");
        l1.add("");
        l1.add("");
        l1.add(jnjhzh);
        l1.add("");
        l1.add("");
        l1.add("");
        list.add(l1);
        List<String> l2 = new ArrayList<String>(); //固定第二行
        l2.add("");
        l2.add("搜索总计");
        l2.add("");
        l2.add("");
        l2.add("");
        l2.add("");
        l2.add("");
//	    l2.add(trimpro+"\r100%");
        l2.add("");
        l2.add("");
        l2.add("");
        list.add(l2);
        return list;
    }

}

第二种类型

package com.ims.common.utils;

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.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ExportUtil {

    public static void main(String[] args) throws IOException {
        FileOutputStream out = new FileOutputStream(new File("E:\\create_table.docx"));
        SimpleDateFormat df = new SimpleDateFormat("yyyy");
        long date = Long.parseLong(df.format(new Date()));
        String title = "Xxx-xx测试报告";
//        String[] value_columns = new String[]{"序号","项目名称","单位","数量","总概算","至"+(date-1)+"年完成",date+"年计划","附注","责任部门","计划执行单位"};
        String[] value_columns = new String[]{"序号", "项目名称", "技术要求", "测量值", "单位", "结论"};
        int[] colWidths = new int[]{600, 3000, 500, 500, 800, 800, 800, 3000, 800, 1500};
        List<List<String>> content = new ArrayList<List<String>>();
        List<List<String>> head = new ArrayList<List<String>>();
        List<String> row = new ArrayList<String>();
        row.add("0");
        row.add("1");
        row.add("2");
        row.add("3");
        row.add("4");
        row.add("5");
        content.add(row);
        List<String> row1 = new ArrayList<String>();
        row1.add("a");
        row1.add("b");
        row1.add("c");
        row1.add("d");
        row1.add("e");
        row1.add("f");
        content.add(row1);
        head.addAll(content);
        XWPFDocument document = exportWord(title, value_columns, head);
        document.write(out);
        out.close();
        System.out.println("create_table document written success.");
    }

    /**
     * @param title
     * @param value_columns
     * @param list
     * @return XWPFDocument
     * @Date 2018年7月19日 上午11:19:04
     * @Description 导出word
     * @Fcunction exportWord
     */
    public static XWPFDocument exportWord(String title, String[] value_columns, List<List<String>> list) {
        XWPFDocument doc = new XWPFDocument();

//        CTDocument1 document = doc.getDocument();
//        CTBody body = document.getBody();
//        if (!body.isSetSectPr()) {
//            body.addNewSectPr();
//        }
//        CTSectPr section = body.getSectPr();
//
//        if (!section.isSetPgSz()) {
//            section.addNewPgSz();
//        }
//        CTPageSz pageSize = section.getPgSz();
//        pageSize.setW(BigInteger.valueOf(15840));
//        pageSize.setH(BigInteger.valueOf(12240));
//        pageSize.setOrient(STPageOrientation.LANDSCAPE);

        //添加标题
        XWPFParagraph titleParagraph = doc.createParagraph();

        //设置段落居中
        titleParagraph.setAlignment(ParagraphAlignment.CENTER);

        XWPFRun titleParagraphRun = titleParagraph.createRun();
        titleParagraphRun.setText(title);
        titleParagraphRun.setColor("000000");
        titleParagraphRun.setFontSize(22);

        //表格
        XWPFTable ComTable = doc.createTable();

        //设置指定宽度
//        CTTbl ttbl = ComTable.getCTTbl();
//        CTTblGrid tblGrid = ttbl.addNewTblGrid();
//        for (int i : colWidths) {
//            CTTblGridCol gridCol = tblGrid.addNewGridCol();
//            gridCol.setW(new BigInteger(i+""));
//        }
        //列宽自动分割
        CTTblWidth comTableWidth = ComTable.getCTTbl().addNewTblPr().addNewTblW();
        comTableWidth.setType(STTblWidth.DXA);
        comTableWidth.setW(BigInteger.valueOf(8327));

        //表头
        XWPFTableRow rowHead = ComTable.getRow(0);
        XWPFParagraph cellParagraph = rowHead.getCell(0).getParagraphs().get(0);
        cellParagraph.setAlignment(ParagraphAlignment.CENTER); //设置表头单元格居中
        XWPFRun cellParagraphRun = cellParagraph.createRun();
        cellParagraphRun.setFontSize(10); //设置表头单元格字号
        cellParagraphRun.setBold(true); //设置表头单元格加粗
        cellParagraphRun.setText(value_columns[0]);
        for (int i = 1; i < value_columns.length; i++) {
            if (value_columns[i].indexOf("增减") > -1) {
                cellParagraph = rowHead.addNewTableCell().getParagraphs().get(0);
                cellParagraph.setAlignment(ParagraphAlignment.CENTER); //设置表头单元格居中
                cellParagraphRun = cellParagraph.createRun();
                cellParagraphRun.setFontSize(10); //设置表格内容字号
                cellParagraphRun.setBold(true);
                cellParagraphRun.setText("增减(+ / -)");
            } else {
                cellParagraph = rowHead.addNewTableCell().getParagraphs().get(0);
                cellParagraph.setAlignment(ParagraphAlignment.CENTER); //设置表头单元格居中
                cellParagraphRun = cellParagraph.createRun();
                cellParagraphRun.setFontSize(10); //设置表格内容字号
                cellParagraphRun.setBold(true); //设置表头单元格加粗
                cellParagraphRun.setText(value_columns[i]);
            }
        }
        int rows = list.size();
        //表格内容
        for (int i = 0; i < rows; i++) {
            XWPFTableRow rowsContent = ComTable.createRow();
            for (int j = 0; j < list.get(i).size(); j++) {
                XWPFParagraph cellParagraphC = rowsContent.getCell(j).getParagraphs().get(0);
                if (j!=1&&j!=2){
                    cellParagraphC.setAlignment(ParagraphAlignment.CENTER); //设置表格内容居中
                }
                XWPFRun cellParagraphRunC = cellParagraphC.createRun();
                cellParagraphRunC.setFontSize(10); //设置表格内容字号
                cellParagraphRunC.setText(list.get(i).get(j) + ""); //单元格段落加载内容
            }
        }
        if (rows == 0) {
            for (int i = 0; i < value_columns.length; i++) {
                XWPFTableCell cell = ComTable.getRow(0).getCell(i);
                cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
            }
        } else {
            //设置居中
            for (int i = 0; i <= rows; i++) {
                for (int j = 0; j < list.get(0).size(); j++) {
                    XWPFTableCell cell = ComTable.getRow(i).getCell(j);
                    cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER); //垂直居中
                }
            }
        }
        return doc;
    }

    /**
     * @param str
     * @return boolean
     * @Date 2018年7月19日 上午11:19:21
     * @Description 判断是否是整数
     * @Fcunction isNumeric
     */
    public static boolean isNumeric(String str) {
        if (str.indexOf(".") > 0) {
            return false;
        }
        return true;
    }

    /**
     * @param jnjhzh
     * @param trimpro
     * @param temp
     * @return List<List < String>>
     * @Date 2018年7月19日 上午11:44:48
     * @Description 正式计划草案获取前两行
     * @Fcunction getCzzscaList
     */
    public static List<List<String>> getCzzscaList(String jnjhzh, String trimpro, String temp) {
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> l1 = new ArrayList<String>(); //固定第一行
        l1.add("");
        l1.add("年度总计");
        l1.add("");
        l1.add("");
        l1.add("");
        l1.add("");
        l1.add(jnjhzh);
        l1.add("");
        l1.add("");
        l1.add("");
        list.add(l1);
        List<String> l2 = new ArrayList<String>(); //固定第二行
        l2.add("");
        l2.add("搜索总计");
        l2.add("");
        l2.add("");
        l2.add("");
        l2.add("");
        l2.add("");
//	    l2.add(trimpro+"\r100%");
        l2.add("");
        l2.add("");
        l2.add("");
        list.add(l2);
        return list;
    }

}

第三种类型

package com.ims.common.utils;

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

import java.io.File;
import java.io.FileOutputStream;
import java.math.BigInteger;

public class WordExportUtil {

    public static void main(String[] args) throws Exception {
        //Blank Document
        XWPFDocument document = new XWPFDocument();

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


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

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


        //段落
        XWPFParagraph firstParagraph = document.createParagraph();
        XWPFRun run = firstParagraph.createRun();
        run.setText("Java POI 生成word文件。");
        run.setColor("696969");
        run.setFontSize(16);

        //设置段落背景颜色
        CTShd cTShd = run.getCTR().addNewRPr().addNewShd();
        cTShd.setVal(STShd.CLEAR);
        cTShd.setFill("97FFFF");


        //换行
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun paragraphRun1 = paragraph1.createRun();
        paragraphRun1.setText("\r");


        //基本信息表格
        XWPFTable infoTable = document.createTable();
        //去表格边框
        infoTable.getCTTbl().getTblPr().unsetTblBorders();


        //列宽自动分割
        CTTblWidth infoTableWidth = infoTable.getCTTbl().addNewTblPr().addNewTblW();
        infoTableWidth.setType(STTblWidth.DXA);
        infoTableWidth.setW(BigInteger.valueOf(9072));


        //表格第一行
        XWPFTableRow infoTableRowOne = infoTable.getRow(0);
        infoTableRowOne.getCell(0).setText("职位");
        infoTableRowOne.addNewTableCell().setText(": Java 开发工程师");

        //表格第二行
        XWPFTableRow infoTableRowTwo = infoTable.createRow();
        infoTableRowTwo.getCell(0).setText("姓名");
        infoTableRowTwo.getCell(1).setText(": seawater");

        //表格第三行
        XWPFTableRow infoTableRowThree = infoTable.createRow();
        infoTableRowThree.getCell(0).setText("生日");
        infoTableRowThree.getCell(1).setText(": xxx-xx-xx");

        //表格第四行
        XWPFTableRow infoTableRowFour = infoTable.createRow();
        infoTableRowFour.getCell(0).setText("性别");
        infoTableRowFour.getCell(1).setText(": 男");

        //表格第五行
        XWPFTableRow infoTableRowFive = infoTable.createRow();
        infoTableRowFive.getCell(0).setText("现居地");
        infoTableRowFive.getCell(1).setText(": xx");


        //两个表格之间加个换行
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun paragraphRun = paragraph.createRun();
        paragraphRun.setText("\r");


        //工作经历表格
        XWPFTable ComTable = document.createTable();


        //列宽自动分割
        CTTblWidth comTableWidth = ComTable.getCTTbl().addNewTblPr().addNewTblW();
        comTableWidth.setType(STTblWidth.DXA);
        comTableWidth.setW(BigInteger.valueOf(9072));

        //表格第一行
        XWPFTableRow comTableRowOne = ComTable.getRow(0);
        comTableRowOne.getCell(0).setText("开始时间");
        comTableRowOne.addNewTableCell().setText("结束时间");
        comTableRowOne.addNewTableCell().setText("公司名称");
        comTableRowOne.addNewTableCell().setText("title");

        //表格第二行
        XWPFTableRow comTableRowTwo = ComTable.createRow();
        comTableRowTwo.getCell(0).setText("2016-09-06");
        comTableRowTwo.getCell(1).setText("至今");
        comTableRowTwo.getCell(2).setText("seawater");
        comTableRowTwo.getCell(3).setText("Java开发工程师");

        //表格第三行
        XWPFTableRow comTableRowThree = ComTable.createRow();
        comTableRowThree.getCell(0).setText("2016-09-06");
        comTableRowThree.getCell(1).setText("至今");
        comTableRowThree.getCell(2).setText("seawater");
        comTableRowThree.getCell(3).setText("Java开发工程师");


        CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
        XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);

        //添加页眉
        CTP ctpHeader = CTP.Factory.newInstance();
        CTR ctrHeader = ctpHeader.addNewR();
        CTText ctHeader = ctrHeader.addNewT();
        String headerText = "Java POI create MS word file.";
        ctHeader.setStringValue(headerText);
        XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document);
        //设置为右对齐
        headerParagraph.setAlignment(ParagraphAlignment.RIGHT);
        XWPFParagraph[] parsHeader = new XWPFParagraph[1];
        parsHeader[0] = headerParagraph;
        policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader);


        //添加页脚
        CTP ctpFooter = CTP.Factory.newInstance();
        CTR ctrFooter = ctpFooter.addNewR();
        CTText ctFooter = ctrFooter.addNewT();
        String footerText = "http://blog.csdn.net/zhouseawater";
        ctFooter.setStringValue(footerText);
        XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, document);
        headerParagraph.setAlignment(ParagraphAlignment.CENTER);
        XWPFParagraph[] parsFooter = new XWPFParagraph[1];
        parsFooter[0] = footerParagraph;
        policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter);


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


}

完整pom文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    
     <!-- 配置下载镜像 -->
    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>
    <!-- 配置下载镜像 -->

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.demodata</groupId>
    <artifactId>sm</artifactId>
    <packaging>jar</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <build>
        <plugins>

            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <id>copy-webapp</id>
                        <phase>process-sources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <encoding>UTF-8</encoding>
                            <outputDirectory>${basedir}/target/classes/webapp</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${basedir}/src/main/webapp</directory>
                                    <includes>
                                        <!-- <include>**/*.xml</include> -->
                                        <!-- <include>**/**</include> -->
                                    </includes>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.1</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <finalName>ims</finalName>
                            <transformers>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.ims.common.CoreConfig</mainClass>
                                </transformer>
                                <!--
                                下面的配置支持排除指定文件打包到 jar 之中,可以用于排除需要修改的配置文件以便于在外部的 config 目录下的
                                同名配置文件生效,建议使用 Prop.appendIfExists(xxx_pro.txt) 在外部放一个非同名配置来覆盖开发环境的配置
                                则可以不用使用下面的配置,文档参考:
                                http://maven.apache.org/plugins/maven-shade-plugin/examples/resource-transformers.html#DontIncludeResourceTransformer
                                -->
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
                                    <resources>
                                        <!-- <resource>demo-config-dev.txt</resource> -->
                                        <!-- <resource>.PDF</resource> -->
                                        <!-- <resource>READ.md</resource> -->
                                    </resources>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

        </plugins>
    </build>
    <dependencies>
        <dependency>
            <groupId>com.jfinal</groupId>
            <artifactId>jfinal-undertow</artifactId>
            <version>1.6</version>
        </dependency>

        <dependency>
            <groupId>com.jfinal</groupId>
            <artifactId>jfinal</artifactId>
            <version>4.2</version>
        </dependency>

        <dependency>
            <groupId>com.esen.jdbc</groupId>
            <artifactId>oscarJDBC</artifactId>
            <version>16</version>
        </dependency>

        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.3</version>
        </dependency>

        <dependency>
            <groupId>it.sauronsoftware.cron4j</groupId>
            <artifactId>cron4j</artifactId>
            <version>2.2.5</version>
        </dependency>

        <dependency>
            <groupId>commons-cli</groupId>
            <artifactId>commons-cli</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.10</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.1</version>
        </dependency>

        <dependency>
            <groupId>commons-configuration</groupId>
            <artifactId>commons-configuration</artifactId>
            <version>1.6</version>
            <exclusions>
                <exclusion>
                    <artifactId>commons-beanutils</artifactId>
                    <groupId>commons-beanutils</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-logging</artifactId>
                    <groupId>commons-logging</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-collections</artifactId>
                    <groupId>commons-collections</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>

        <dependency>
            <groupId>com.jfinal</groupId>
            <artifactId>cos</artifactId>
            <version>2017.5</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.17</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.5</version>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
            <exclusions>
                <exclusion>
                    <artifactId>commons-lang</artifactId>
                    <groupId>commons-lang</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-logging</artifactId>
                    <groupId>commons-logging</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-beanutils</artifactId>
                    <groupId>commons-beanutils</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-collections</artifactId>
                    <groupId>commons-collections</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>15.0</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
            <version>4.1.36.Final</version>
        </dependency>
        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>2.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>3.17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>ooxml-schemas</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.26</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.28</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <!--生成二维码依赖-->
        <!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.3.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.1</version>
        </dependency>
        <!--生成二维码依赖-->
        <!--生成可定制二维码-->
        <!-- 请注意groupId和github的方式有一些区别哦 -->
        <dependency>
            <groupId>com.github.liuyueyi.quick-media</groupId>
            <artifactId>qrcode-plugin</artifactId>
            <version>2.5</version>
        </dependency>
        <!--生成可定制二维码-->


    </dependencies>


</project>

![在这里插入图片描述](https://img-blog.csdnimg.cn/48eef07a337b4081b918dd1c9731d4e3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQOaYr1FR5ZWK,size_20,color_FFFFFF,t_70,g_se,x_16)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值