POI 写word,添加标题,表格,图片,自动生成目录,合并单元格

该博客介绍了如何利用Java的POI库来创建Word文档,详细步骤包括设置标题、插入表格、添加图片以及自动生成目录的功能。还提供了一个GitHub工程链接供读者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工程地址:https://github.com/zheng-chang-wei/word 

package com.example.demo1.poi;

import org.apache.poi.xwpf.usermodel.XWPFDocument;

import java.io.File;
import java.io.FileOutputStream;

public class PoiWord {
    public static void main(String[] args) {
        XWPFDocument doc = PoiUtil.createDocument();
        PoiUtil.addEmptyRow(doc);
        PoiUtil.createHeading1(doc, "1 样品简介");
        PoiUtil.createHeading2(doc, "1.1 概述");

        PoiUtil.createBody(doc, "asdfasdfsf啊但是发射点VS大哥飞洒地方撒旦飞洒地方嘎嘎发打撒大厦是个大帅哥夫人特温柔各方");
        PoiUtil.addImage(doc, "picture0.png", "图 1.1-1 ");

        PoiUtil.createHeading2(doc, "1.2 主要技术参数");
        PoiUtil.createBody(doc, "PICS 表格中用到的缩略语:");
        PoiUtil.createBody(doc, "m : 要求强制支持");
        PoiUtil.createBody(doc, "n/a : 此项不可用");
        PoiUtil.createBody(doc, "o : 可选支持");
        PoiUtil.createBody(doc, "c : 此项是有条件的");
        PoiUtil.createBody(doc, "d : 默认");
        PoiUtil.createBody(doc, "Y : 是");
        PoiUtil.createBody(doc, "N : 否");
        PoiUtil.createTable(doc, "表1.2-1 PISC标识");

        FileOutputStream out = null;
        try {
            out = new FileOutputStream(new File("e:\\word.doc"));
            doc.write(out);
            out.close();
            PoiUtil.createToc("e:\\word.doc");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
package com.example.demo1.poi;

import com.example.demo1.jacob.WordManager;
import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlToken;
import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;
import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
import org.springframework.util.StringUtils;

import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.math.BigInteger;

public class PoiUtil {

    public static int headingCount = 0;

    public static int totalRows = 39;

    public static XWPFDocument createDocument() {

        XWPFDocument doc = new XWPFDocument();
        //添加标题
        addCustomHeadingStyle(doc, "Heading1", 1);
        addCustomHeadingStyle(doc, "Heading2", 2);
        return doc;
    }

    public static void createTitle(XWPFDocument doc, String title) {
        XWPFParagraph titleParagraph = doc.createParagraph();

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

        XWPFRun titleParagraphRun = titlePa
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值