使用Java替换word模板中关键字-简易版

简介: 使用Java替换word模板中关键字-简易版
1 效果演示


网络异常,图片无法展示
|


效果演示截图


2 实现过程


2.1 导入jar包

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-scratchpad -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>3.17</version>
</dependency>


2.2 实现代码


不啰嗦,直接上代码。

package WordTest;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Range;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class WordDemoUtils {
    public static void main(String[] args) {
        replaceWordKeyWord();
    }
    public static void replaceWordKeyWord() {
        try {
            String serverPath = "E:\\TEST\\tmpl2.doc";
            InputStream is = new FileInputStream(serverPath);
            HWPFDocument doc = new HWPFDocument(is);
            Range range = doc.getRange();
            range.replaceText("${year}", "2020");
            range.replaceText("${morning}", "早上");
            OutputStream os = new FileOutputStream("E:\\TEST\\target.doc");
            //把doc输出到输出流中
            doc.write(os);
            is.close();
            os.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


自测过程中发现的小问题及解决方法:


原本最初我使用的模板后缀为.docx,可自测过程中报了如下错误:


java.lang.IllegalArgumentException: The document is really a OOXML file


解决方法:我将docx的文件另存为低版本的doc文件,即解决上述了问题。


所以这里做个小总结,模板和输出文件都要是doc文件。

相关文章
|
13天前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
66 5
|
22天前
|
搜索推荐 Java 数据库连接
Java|在 IDEA 里自动生成 MyBatis 模板代码
基于 MyBatis 开发的项目,新增数据库表以后,总是需要编写对应的 Entity、Mapper 和 Service 等等 Class 的代码,这些都是重复的工作,我们可以想一些办法来自动生成这些代码。
29 6
|
29天前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
135 1
|
1月前
|
算法 Java Linux
java制作海报四:java BufferedImage 转 InputStream 上传至OSS。png 图片合成到模板(另一个图片)上时,透明部分变成了黑色
这篇文章主要介绍了如何将Java中的BufferedImage对象转换为InputStream以上传至OSS,并解决了png图片合成时透明部分变黑的问题。
60 1
|
1月前
|
Java
Java PDF模板生成PDF
Java PDF模板生成PDF
34 1
|
1月前
|
小程序
java--微信小程序发送模板消息
java--微信小程序发送模板消息
102 0
|
3月前
|
小程序 Java
【aspose-words】Aspose.Words for Java模板语法详细剖析
本文通过详细分析Aspose.Words for Java模板语法,介绍了使用条件块、变量和动态合并表格单元格三个常用模板标签,并结合实际案例进行演示。通过这三个标签的实操,帮助读者更好地掌握Aspose.Words的使用技巧。此外,还提供了官方文档链接以便进一步学习。
141 0
【aspose-words】Aspose.Words for Java模板语法详细剖析
|
3月前
|
Java
Java系列之 IDEA 为类 和 方法设置注解模板
这篇文章介绍了如何在IntelliJ IDEA中为类和方法设置注解模板,包括类模板的创建和应用,以及两种不同的方法注解模板的创建过程和实际效果展示,旨在提高代码的可读性和维护性。
|
3月前
|
XML Java 数据格式
基于Java+freemarker实现动态赋值以及生成Word文档
使用Java和Freemarker技术实现动态数据填充到Word文档模板并生成新的Word文档。
248 0
基于Java+freemarker实现动态赋值以及生成Word文档
|
2月前
|
Java Apache Maven
Java中使用poi+poi-tl实现根据模板导出word文档
这个过程不仅简化了文档生成的工作,而且保证了生成文档的一致性与准确性,特别适合于那些需要生成大量文档的自动化场景。通过以上步骤,Java开发人员可以实现高效、可靠的Word文档导出功能。
1287 0