Apache POI替换Word中的字符串

时间:2014-07-03 20:22:23

标签: java replace ms-word apache-poi docx

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

  • 我创建了一个包含所有信息的文件,并用%...占位符替换了一些内容。例如,%name,%date等
  • 当我运行应用程序时,我可以从列表中选择一个名称,它会自动加载文档,用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();
    }
}

1 个答案:

答案 0 :(得分:0)

请参阅我的回答here我使用此解决方案自动生成文档,并且已经使用了超过1年的生产。