java的XWPFDocument3.17版本学习

maven依赖


XML 复制代码
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>

测试类:

java 复制代码
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.util.Units;
import org.apache.poi.xwpf.usermodel.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTColor;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;

import java.io.*;

public class WordMain {
    public static void main(String[] args) throws IOException, InvalidFormatException {

        // 创建一个XWPFDocument对象:
        XWPFDocument document = new XWPFDocument();
        // 添加段落(Paragraph)到文档中:
        XWPFParagraph paragraph1 = document.createParagraph();
        // 创建一个XWPFRun对象,并设置段落的文本内容、字体样式等
        // 多个段落就创建多个XWPFParagraph
        // 如果要在同一个段落中添加不同的文本格式,使用同一个XWPFParagraph,创建多个XWPFRun,分别对其进行样式设置即可
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("hello word 文档");
        run1.setFontSize(12);
        run1.setBold(true);
        // 可以设置其他样式,如字体、颜色等

        // 创建一个CTColor对象,并设置颜色为红色(红色的RGB值为255, 0, 0)
        CTColor color = CTColor.Factory.newInstance();
        color.setVal("FF0000"); // 设置颜色为红色

        // 创建一个CTR对象,并设置CTR的属性
        CTR ctr = run1.getCTR();
        CTRPr ctrPr = ctr.addNewRPr();
        ctrPr.setColor(color);

        // 添加表格(Table)到文档中:
        int rows = 3;
        int cols = 4;
        XWPFTable table = document.createTable(rows, cols);

        // 遍历表格单元格,并设置内容
        for (int row = 0;
             row < rows; row++) {
            for (int col = 0; col < cols; col++) {
                XWPFTableCell cell = table.getRow(row).getCell(col);
                cell.setText("行 " + (row + 1) + " 列 " + (col + 1));
            }
        }

        // 创建新的断落设置内容1.5间距
        XWPFParagraph paragraph2 = document.createParagraph();
        paragraph2.setSpacingBetween(1.5, LineSpacingRule.AUTO);
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("hello word 内容");

        // 插入图片
        String imagePath = "D://image.png";
        InputStream imageStream = new FileInputStream(imagePath);
        XWPFParagraph paragraph3 = document.createParagraph();
        XWPFRun run3 = paragraph3.createRun();
        // 图片格式为JPEG
        int format = XWPFDocument.PICTURE_TYPE_JPEG;
        run3.addPicture(imageStream, format, "image", Units.toEMU(400), Units.toEMU(200));

        // 将文档保存到文件
        FileOutputStream out = new FileOutputStream("D://test1.docx");
        document.write(out);
        out.close();

        // 将文档保存到输出流中(这个用于在前端点击导出时传入的HttpServletResponse)
//        HttpServletResponse response = null;
//        //获取输出流
//        OutputStream outputStream = response.getOutputStream();
//        //用文档写输出流
//        document.write(outputStream);
//        //刷新输出流
//        outputStream.flush();

        System.out.println("将文档保存成功!");
    }
}

结果:

相关推荐
高兴达5 分钟前
Spring boot入门工程
java·spring boot·后端
萧曵 丶7 分钟前
Spring @TransactionalEventListener
java·数据库·spring·事务·transactional·异步
笑衬人心。7 分钟前
HTTPS详解:原理 + 加解密过程 + 面试问答
java·网络协议·http·面试·https
蓝澈11219 分钟前
弗洛伊德(Floyd)算法-各个顶点之间的最短路径问题
java·数据结构·动态规划
生如夏花℡17 分钟前
HarmonyOS学习记录3
学习·ubuntu·harmonyos
再见晴天*_*18 分钟前
logback 日志不打印
java·服务器·logback
之歆20 分钟前
Python-封装和解构-set及操作-字典及操作-解析式生成器-内建函数迭代器-学习笔记
笔记·python·学习
幽络源小助理26 分钟前
SpringBoot基于JavaWeb的城乡居民基本医疗信息管理系统
java·spring boot·学习
欧阳有财29 分钟前
[java八股文][Mysql面试篇]日志
java·mysql·面试
TDengine (老段)38 分钟前
使用 StatsD 向 TDengine 写入
java·大数据·数据库·时序数据库·iot·tdengine·涛思数据