Apache POI在Word中替换字符串



我最近一直在研究一个自动化系统,用来制作和打印要邮寄的信件。系统的工作原理如下:

  • 我创建了一个文件,其中包含所有信息,并将一些内容替换为%…占位符。例如%名称、%日期等。
  • 当我运行应用程序时,我可以从列表中选择一个名称,它会自动加载文档,用MySQL数据库提供的信息替换所有占位符,并打印出文档。出于测试的目的,我现在只是保存文档。

我在网上找到了一些教程,并找到了一个适合我需要的代码。不幸的是,这段代码只适用于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();
    }
}

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

相关内容

  • 没有找到相关文章

最新更新