zoukankan      html  css  js  c++  java
  • Java POI 生成Word文档

    maven的pom

    <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>ooxml-schemas</artifactId>
                <version>1.1</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/fr.opensagres.xdocreport/org.apache.poi.xwpf.converter.core -->
            <dependency>
                <groupId>fr.opensagres.xdocreport</groupId>
                <artifactId>org.apache.poi.xwpf.converter.core</artifactId>
                <version>1.0.6</version>
            </dependency>

    Java代码

      1 package com.seawater.controller;
      2  
      3 import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
      4 import org.apache.poi.xwpf.usermodel.*;
      5 import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
      6  
      7 import java.io.File;
      8 import java.io.FileOutputStream;
      9 import java.math.BigInteger;
     10  
     11  
     12 /**
     13  * Created by zhouhs on 2017/1/9.
     14  */
     15 public class WordExportController {
     16  
     17     public static void main(String[] args)throws Exception {
     18         //Blank Document
     19         XWPFDocument document= new XWPFDocument();
     20  
     21         //Write the Document in file system
     22         FileOutputStream out = new FileOutputStream(new File("create_table.docx"));
     23  
     24  
     25         //添加标题
     26         XWPFParagraph titleParagraph = document.createParagraph();
     27         //设置段落居中
     28         titleParagraph.setAlignment(ParagraphAlignment.CENTER);
     29  
     30         XWPFRun titleParagraphRun = titleParagraph.createRun();
     31         titleParagraphRun.setText("Java PoI");
     32         titleParagraphRun.setColor("000000");
     33         titleParagraphRun.setFontSize(20);
     34  
     35  
     36         //段落
     37         XWPFParagraph firstParagraph = document.createParagraph();
     38         XWPFRun run = firstParagraph.createRun();
     39         run.setText("Java POI 生成word文件。");
     40         run.setColor("696969");
     41         run.setFontSize(16);
     42  
     43         //设置段落背景颜色
     44         CTShd cTShd = run.getCTR().addNewRPr().addNewShd();
     45         cTShd.setVal(STShd.CLEAR);
     46         cTShd.setFill("97FFFF");
     47  
     48  
     49         //换行
     50         XWPFParagraph paragraph1 = document.createParagraph();
     51         XWPFRun paragraphRun1 = paragraph1.createRun();
     52         paragraphRun1.setText("
    ");
     53  
     54  
     55         //基本信息表格
     56         XWPFTable infoTable = document.createTable();
     57         //去表格边框
     58         infoTable.getCTTbl().getTblPr().unsetTblBorders();
     59  
     60  
     61         //列宽自动分割
     62         CTTblWidth infoTableWidth = infoTable.getCTTbl().addNewTblPr().addNewTblW();
     63         infoTableWidth.setType(STTblWidth.DXA);
     64         infoTableWidth.setW(BigInteger.valueOf(9072));
     65  
     66  
     67         //表格第一行
     68         XWPFTableRow infoTableRowOne = infoTable.getRow(0);
     69         infoTableRowOne.getCell(0).setText("职位");
     70         infoTableRowOne.addNewTableCell().setText(": Java 开发工程师");
     71  
     72         //表格第二行
     73         XWPFTableRow infoTableRowTwo = infoTable.createRow();
     74         infoTableRowTwo.getCell(0).setText("姓名");
     75         infoTableRowTwo.getCell(1).setText(": seawater");
     76  
     77         //表格第三行
     78         XWPFTableRow infoTableRowThree = infoTable.createRow();
     79         infoTableRowThree.getCell(0).setText("生日");
     80         infoTableRowThree.getCell(1).setText(": xxx-xx-xx");
     81  
     82         //表格第四行
     83         XWPFTableRow infoTableRowFour = infoTable.createRow();
     84         infoTableRowFour.getCell(0).setText("性别");
     85         infoTableRowFour.getCell(1).setText(": 男");
     86  
     87         //表格第五行
     88         XWPFTableRow infoTableRowFive = infoTable.createRow();
     89         infoTableRowFive.getCell(0).setText("现居地");
     90         infoTableRowFive.getCell(1).setText(": xx");
     91  
     92  
     93         //两个表格之间加个换行
     94         XWPFParagraph paragraph = document.createParagraph();
     95         XWPFRun paragraphRun = paragraph.createRun();
     96         paragraphRun.setText("
    ");
     97  
     98  
     99  
    100         //工作经历表格
    101         XWPFTable ComTable = document.createTable();
    102  
    103  
    104         //列宽自动分割
    105         CTTblWidth comTableWidth = ComTable.getCTTbl().addNewTblPr().addNewTblW();
    106         comTableWidth.setType(STTblWidth.DXA);
    107         comTableWidth.setW(BigInteger.valueOf(9072));
    108  
    109         //表格第一行
    110         XWPFTableRow comTableRowOne = ComTable.getRow(0);
    111         comTableRowOne.getCell(0).setText("开始时间");
    112         comTableRowOne.addNewTableCell().setText("结束时间");
    113         comTableRowOne.addNewTableCell().setText("公司名称");
    114         comTableRowOne.addNewTableCell().setText("title");
    115  
    116         //表格第二行
    117         XWPFTableRow comTableRowTwo = ComTable.createRow();
    118         comTableRowTwo.getCell(0).setText("2016-09-06");
    119         comTableRowTwo.getCell(1).setText("至今");
    120         comTableRowTwo.getCell(2).setText("seawater");
    121         comTableRowTwo.getCell(3).setText("Java开发工程师");
    122  
    123         //表格第三行
    124         XWPFTableRow comTableRowThree = ComTable.createRow();
    125         comTableRowThree.getCell(0).setText("2016-09-06");
    126         comTableRowThree.getCell(1).setText("至今");
    127         comTableRowThree.getCell(2).setText("seawater");
    128         comTableRowThree.getCell(3).setText("Java开发工程师");
    129  
    130  
    131         CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
    132         XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);
    133  
    134         //添加页眉
    135         CTP ctpHeader = CTP.Factory.newInstance();
    136         CTR ctrHeader = ctpHeader.addNewR();
    137         CTText ctHeader = ctrHeader.addNewT();
    138         String headerText = "Java POI create MS word file.";
    139         ctHeader.setStringValue(headerText);
    140         XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document);
    141         //设置为右对齐
    142         headerParagraph.setAlignment(ParagraphAlignment.RIGHT);
    143         XWPFParagraph[] parsHeader = new XWPFParagraph[1];
    144         parsHeader[0] = headerParagraph;
    145         policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader);
    146  
    147  
    148         //添加页脚
    149         CTP ctpFooter = CTP.Factory.newInstance();
    150         CTR ctrFooter = ctpFooter.addNewR();
    151         CTText ctFooter = ctrFooter.addNewT();
    152         String footerText = "http://blog.csdn.net/zhouseawater";
    153         ctFooter.setStringValue(footerText);
    154         XWPFParagraph footerParagraph = new XWPFParagraph(ctpFooter, document);
    155         headerParagraph.setAlignment(ParagraphAlignment.CENTER);
    156         XWPFParagraph[] parsFooter = new XWPFParagraph[1];
    157         parsFooter[0] = footerParagraph;
    158         policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT, parsFooter);
    159  
    160  
    161         document.write(out);
    162         out.close();
    163         System.out.println("create_table document written success.");
    164     }
    165  
    166  
    167 }

    背景颜色

    1 //设置段落背景颜色
    2         CTShd cTShd = run.getCTR().addNewRPr().addNewShd();
    3         cTShd.setVal(STShd.CLEAR);
    4         cTShd.setFill("97FFFF");
  • 相关阅读:
    Qt's Undo Framework
    linux-ftp
    Linux Terminator
    linux wc
    Linux卷配置管理
    vmware workstation LINUX磁盘扩容
    Oracle linux6.1配置yum本地源
    安装jdk java -version 不是自己所需要的版本
    aix下oracle数据库创建表空间和用户
    Linux命令 find和mv的结合使用:查找文件,移动到某个目录
  • 原文地址:https://www.cnblogs.com/lemperor/p/15103920.html
Copyright © 2011-2022 走看看