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");
  • 相关阅读:
    ASP.NET编程的十大技巧
    C#学习心得(转)
    POJ 1177 Picture (线段树)
    POJ 3067 Japan (树状数组)
    POJ 2828 Buy Tickets (线段树)
    POJ 1195 Mobile phones (二维树状数组)
    HDU 4235 Flowers (线段树)
    POJ 2886 Who Gets the Most Candies? (线段树)
    POJ 2418 Cows (树状数组)
    HDU 4339 Query (线段树)
  • 原文地址:https://www.cnblogs.com/lemperor/p/15103920.html
Copyright © 2011-2022 走看看