Spire.doc 合并word,复制word

之前使用的poi来实现这个功能,然后发现在复制chart时,边框样式无法修改,于是就使用了spire.doc

  1. 引入依赖
XML 复制代码
    <repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
    <dependencies>

        <dependency>
            <groupId>e-iceblue</groupId>
            <artifactId>spire.doc.free</artifactId>
            <version>5.2.0</version>
        </dependency>
        
    </dependencies>
  1. 如果只是合并文档,可以使用spire.doc 自带的合并方法
java 复制代码
    public static void main(String[] args) {
        Document doc = new Document("test.docx");
        doc.insertTextFromFile("append.docx", FileFormat.Docx);
        doc.saveToFile("out.docx", FileFormat.Docx);
    }

这个方法有个弊端,就是两个文档中间会自动分节,如果对格式有要求的话,建议用下面的方法

  1. 使用复制元素的方法来追加文档内容
java 复制代码
    public static void appendDoc(Document srcDoc, Document appendDoc) {
        SectionCollection sections = appendDoc.getSections();
        for (Section section : (Iterable<Section>) sections) {
            for (int j = 0; j < section.getBody().getChildObjects().getCount(); j++) {
                //获取文档中的段落和表格
                DocumentObject obj = section.getBody().getChildObjects().get(j);
                //将文档中的段落和表格插入到新的文档中
                srcDoc.getLastSection().getBody().getChildObjects().add(obj.deepClone());
            }
        }
    }

核心思想是从目标文档的最后一节开始追加源文档的每个元素,这个方法对文档格式没有任何影响,只是单纯的追加内容,如果中间需要加空行或者其他要素,需要修改上面的方法

相关推荐
鲸渔2 分钟前
【C++ 变量与常量】变量的定义、初始化、const 与 constexpr
java·开发语言·c++
i220818 Faiz Ul4 分钟前
教育资源共享平台|基于springboot + vue教育资源共享平台系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·教育资源共享平台
玛卡巴卡ldf4 分钟前
【Springboot7】ApachePOI文件导入导出
java·spring boot·sql
编程大师哥6 分钟前
VSCode中如何搭建JAVA+MAVEN
java·vscode·maven
不会写DN8 分钟前
SQL 单表操作全解
java·服务器·开发语言·数据库·sql
Devin~Y13 分钟前
大厂 Java 面试实战:从电商微服务到 AI 智能客服(含 Spring 全家桶、Redis、Kafka、RAG/Agent 解析)
java·spring boot·redis·elasticsearch·spring cloud·docker·kafka
无籽西瓜a14 分钟前
【西瓜带你学设计模式 | 第十五期 - 策略模式】策略模式 —— 算法封装与动态替换实现、优缺点与适用场景
java·后端·设计模式·软件工程·策略模式
珍朱(珠)奶茶17 分钟前
Spring Boot3整合FreeMark、itextpdf 5/7 实现pdf文件导出及注意问题
java·spring boot·后端·pdf·itextpdf
大数据新鸟23 分钟前
微服务之Spring Cloud LoadBalancer
java·spring cloud·微服务
杜子不疼.24 分钟前
AI Agent 智能体开发入门:AutoGen 多智能体协作实战教程
java·人工智能·spring