当前位置: 首页 > 知识库问答 >
问题:

Apache POI替换Word中的字符串

郭德惠
2023-03-14

我最近一直在开发一个自动系统来制作和打印要邮寄的信件。该系统的工作原理如下:

    null

我在网上找到了一些教程,找到了适合我需要的代码。不幸的是,此代码仅适用于早于2007年的Word版本(.doc文件)。对于2007兼容性(.docx文件),我会更改什么?

public static void main(String[] args){
    try{
        FileInputStream fis = new FileInputStream("/Users/Jasper/Desktop/document.doc");
        POIFSFileSystem fs = new POIFSFileSystem(fis);

        HWPFDocument doc = new HWPFDocument(fs);

        Range range = doc.getRange();
        range.replaceText("%name", "Jasper");
        range.replaceText("%age", "17");

        FileOutputStream fos = new FileOutputStream("/Users/Jasper/Desktop/document2.doc");
        doc.write(fos);

        fis.close();
        fos.close();
    }catch(Exception e){
        e.printStackTrace();
    }
}

共有1个答案

葛威
2023-03-14

请看我的回答,我使用这个解决方案来自动生成文档,它已经在生产中使用了一年多。

 类似资料:
  • 问题内容: 我试图遍历一个字符数组,并将字符串中的该字符替换为另一个数组中的并行字符。 这是我得到的例子: 它总是输出相同的字符串,没有替换。 我也尝试使用: 和replaceAll方法。 有什么建议? 问题答案: 字符串在Java中是不可变的。不会 更改 您调用它的字符串-它会 返回 更改后的新字符串。所以你要: (对于要在其上“显示”更改的 所有 方法,这都是不变的,因此也是如此。)

  • 问题内容: 问题是需要替换给定字符串中的单个字符,同时保留字符串中的其他字符。 代码是: 问题答案: 您几乎做到了,只需在循环中添加一个计数器即可:

  • 问题内容: 我目前有一个包含字符A,B和C的字符串,例如,该字符串看起来像 其他不包含A,B或CI的随机变量想分别用“ A”,“ B”和“ C”替换A,B和C,这是我目前正在做的最好方法: 问题答案: 如果A,B和C是完全相同的单个字符,cletus的答案就可以正常工作,但是如果它们可以是更长的字符串,而您只是出于示例目的将它们称为A,B和C,则cletus的答案就可以。如果它们是更长的字符串,则

  • 问题内容: 我有一个以字符串形式传递的句子,我正在对单词“ and”进行替换,我想用“”替换它。而且它不是用空格替换“和”一词。以下是我的逻辑示例。而当我调试此逻辑时,逻辑确实落入了句子。 这里有我想念的东西吗? 问题答案: 而当我调试此逻辑时,逻辑确实落入了句子。 是的,然后你放弃返回值。 Java中的字符串是不可变的-当你调用时,它不会更改现有字符串的内容-它会返回经过修改的新字符串。所以你要

  • 我有一个作为字符串传入的句子,我正在对单词“and”进行替换,我想用“”替换它。它并没有用空白代替“和”。下面是我的逻辑示例。当我调试这个的时候,逻辑就落在句子里了。代替 这里有我遗漏的东西吗。