java-使用POI创建、导出word文档

前段时间有个导出word需求,通过Apache POI来开发。POI可以操作MSOffice中常用的三件套Word、Excel、PowerPoint,并且支持2007以上的版本。因为项目针对Word,所以只研究了下POI中XWPF的一些特性,从而达到代码操作生成Word的效果。

引入依赖
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.1</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooml</artifactId>
    <version>4.1.1</version>
</dependency>
创建文档代码
XWPFDocument document = new XWPFDocument(); //创建文档
XWPFParagraph paragraph=document.createParagraph(); //创建段落
paragraph.setAlignment(ParagraphAlignment.LEFT); //段落左对齐
XWPFRun run=titleParagraph.createRun();  //创建run
run.setBold(true); //粗体
run.setFontSize(15); //字号
run.setFontFamily("宋体"); //字体
run.setText("");  //输入内容
run.addBreak(); //换行

paragraph.setPageBreak(true);//分页

String path = "xxx.docx";
// 保存文档
FileOutputStream out = new FileOutputStream(path);
document.write(out);

out.close();
document.close(); 
创建word表格代码
XWPFDocument document = new XWPFDocument(); //创建文档
XWPFTable table = document.createTable(1, 4);  //创建表格
table.setWidthType(TableWidthType.AUTO);  //自适应行宽

//获取第一行
XWPFTableRow row1 = table.getRow(0);
row1.getCell(0).setWidth(String.valueOf(1500));//第一个单元格行宽
row1.getCell(0).getParagraphArray(0).createRun().setText("");//输入内容

XWPFTableRow row = table.createRow();  //在原来的表格上添加一行
row.getCell(1).getParagraphArray(0).createRun().setText(" "); //每个单元格只有一个段落
row.getCell(1).addParagraph().createRun().setText(" ");//添加段落

//设置表的单元格样式
List<XWPFTableRow> rows = table.getRows();
for(XWPFTableRow row : rows){
    List<XWPFTableCell> cells = row.getTableCells();
    for(XWPFTableCell cell : cells){
        //单元格内容居中
        cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);  
        List<XWPFParagraph> XWPFParagraphs = cell.getParagraphs();
        for(XWPFParagraph paragraph : XWPFParagraphs){
            paragraph.setIndentFromLeft(100); //左边距
            paragraph.setIndentFromRight(200); //右边距
            List<XWPFRun> runs = paragraph.getRuns();
            for(XWPFRun tableRun : runs){
                tableRun.setFontSize(9);
                tableRun.setFontFamily("宋体");
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值