`

java poi 写word 根据模板

    博客分类:
  • Java
 
阅读更多
package apache.poi;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.poi.hwpf.HWPFDocument;
 import org.apache.poi.hwpf.usermodel.Range;
 import org.apache.poi.poifs.filesystem.DirectoryEntry;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 
 
 public class ExportDocTest {
     
     public static void main(String[] args) {
         String destFile="D:\\11.doc";
         //#####################根据自定义内容导出Word文档#################################################
         StringBuffer fileCon=new StringBuffer();
         fileCon.append("               张大炮            男              317258963215223\n" +
                 "2011     09        2013     07       3\n" +
                 "    二炮研究              成人\n" +
                 "2013000001                             2013     07     08");
         fileCon.append("\n\r\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
         
         new ExportDocTest().exportDoc(destFile, fileCon.toString());
         
         //##################根据Word模板导出单个Word文档###################################################
         Map<String, String> map=new HashMap<String, String>();
         
         map.put("name", "Zues");
         map.put("sex", "男");
         map.put("idCard", "200010");
         map.put("year1", "2000");
         map.put("month1", "07");
         map.put("year2", "2008");
         map.put("month2", "07");
         map.put("gap", "2");
         map.put("zhuanye", "计算机科学与技术");
         map.put("type", "研究生");
         map.put("bianhao", "2011020301");
         map.put("nowy", "2011");
         map.put("nowm", "01");
         map.put("nowd", "20220301");
         //注意biyezheng_moban.doc文档位置,此例中为应用根目录
         HWPFDocument document=new ExportDocTest().replaceDoc("biyezheng_moban.doc", map);
         ByteArrayOutputStream ostream = new ByteArrayOutputStream();
         try {
             document.write(ostream);
             //输出word文件
             OutputStream outs=new FileOutputStream(destFile);
             outs.write(ostream.toByteArray());
             outs.close();
         } catch (IOException e) {
             e.printStackTrace();
         }
         
     }
     
     
     /**
      * 
      * @param destFile
      * @param fileCon
      */
     public void exportDoc(String destFile,String fileCon){
         try {
             //doc content
             ByteArrayInputStream bais = new ByteArrayInputStream(fileCon.getBytes());
             POIFSFileSystem fs = new POIFSFileSystem();
             DirectoryEntry directory = fs.getRoot(); 
             directory.createDocument("WordDocument", bais);
             FileOutputStream ostream = new FileOutputStream(destFile);
             fs.writeFilesystem(ostream);
             bais.close();
             ostream.close();
             
         } catch (IOException e) {
             e.printStackTrace();
         }
     }
     
     
     /**
      * 读取word模板并替换变量
      * @param srcPath
      * @param map
      * @return
      */
     public HWPFDocument replaceDoc(String srcPath, Map<String, String> map) {
         try {
             // 读取word模板
             FileInputStream fis = new FileInputStream(new File(srcPath));
             HWPFDocument doc = new HWPFDocument(fis);
             // 读取word文本内容
             Range bodyRange = doc.getRange();
             // 替换文本内容
             for (Map.Entry<String, String> entry : map.entrySet()) {
                 bodyRange.replaceText("${" + entry.getKey() + "}", entry
                         .getValue());
             }
             return doc;
         } catch (Exception e) {
             e.printStackTrace();
             return null;
         }
     }
 
 }
分享到:
评论

相关推荐

    使用java Apache poi 根据word模板生成word报表例子

    使用java Apache poi 根据word模板生成word报表 仅支持docx格式的word文件,大概是word2010及以后版本,doc格式不支持。 使用说明:https://blog.csdn.net/u012775558/article/details/79678701

    Java Poi流根据Word模板插入相应的文本、表格和图片,并生成新的Word报告。

    在这个场景中,我们关注的是如何利用Java POI库通过Word模板生成包含特定文本、表格和图片的报告。 首先,我们需要了解Java POI中的XWPFDocument类,它是用来处理.docx文件的。XWPFDocument可以读取、修改和创建...

    Java Poi流 根据Word模板插入相应的文本、表格和图片,生成新的Word报告

    在本主题中,我们将深入探讨如何使用Java POI流处理Word模板,插入文本、表格和图片,以及生成新的Word报告。 1. **Java POI流处理Word模板**: - POI API提供了`XWPFDocument`类来处理`.docx`文件,这是Word 2007...

    java使用poi根据word模板生成word(图片及文字).zip

    以上就是使用Java和Apache POI根据Word模板生成带有图片和文字的Word文档的基本步骤和技术要点。通过这种方式,开发者可以方便地批量生成定制化的报告、合同或其他文档,极大地提高了工作效率。

    java poi导出word

    Java POI库是Apache软件基金会开发的一个开源项目,专门用于读写Microsoft Office格式的文件,如Word、Excel和PowerPoint。在"java poi导出word"这个场景中,我们主要关注的是如何使用Java POI来创建和编辑Word文档...

    java poi 通过模板生成word文档

    这个过程通常涉及到读取一个预先设计好的Word模板,然后在运行时替换模板中的特定占位符或变量,生成个性化的文档。 首先,让我们了解如何准备模板。一个模板文件(通常是 .docx 格式)应该包含静态内容,如文本、...

    使用java Apache poi 根据word模板生成word报表.rar

    在本项目中,“使用java Apache poi 根据word模板生成word报表.rar”是一个压缩包,其中包含了一套使用Java和Apache POI库来根据预设的Word模板生成定制化报表的解决方案。 首先,我们需要理解Apache POI API的工作...

    poi读写word模板/JAVA生成word包

    关于压缩包中的"poi读写word模板包",可能包含了一些示例代码或模板文件,帮助开发者理解如何使用Apache POI进行Word模板的读写。解压后,你可以查看这些文件来学习具体实现,包括如何查找和替换模板中的特定字符串...

    java poi操作word模版文件生成表单和修改

    在这个场景中,我们将重点讨论如何使用Java POI来操作Word模板文件,生成表单以及进行修改,特别是处理含有下拉框等交互元素的情况。 首先,让我们了解Java POI的基本用法。要操作Word文档,我们需要导入`org....

    Apache poi 根据word模板生成word报表 替换 循环列表 图片

    在本项目中,我们将关注如何使用Apache POI来根据预设的Word模板生成包含替换内容、循环列表和图片的动态Word报表。 首先,我们需要理解Apache POI的核心概念。在处理Word文档时,POI提供了HWPF(Horrible Word ...

    POI使用word模板文件循环输出行并导出word

    Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在这个例子中,我们将探讨如何使用POI库来处理Word文档,特别是利用模板文件循环输出表格行并导出新的Word文档...

    java Apache poi word模板 表格模板 word报表.zip

    通过这个资料包,开发者将学习到如何利用Apache POI在Java中高效地处理Word模板,从而创建出定制化的Word报表,这对于自动化报告生成、数据分析报告以及各类业务报表的制作具有很高的实用价值。

    java使用poi操作.doc word模板替换,循环插入表格

    在Word模板替换中,我们可以使用XWPFDocument类来打开一个现有的.docx文件,然后遍历文档中的所有文本元素,例如XWPFParagraph和XWPFRun,查找需要替换的占位符。一旦找到,我们就可以用新的内容替换它们。例如,你...

    Java利用poi对word插入文字图片

    这个项目对于那些希望在Java应用程序中自动化生成或编辑Word文档的人来说非常有价值,比如报告生成、模板填充等场景。通过掌握Apache POI,你可以实现对Word文档的完全控制,让Java与Office世界无缝对接。

    POI替换word模板中的关键字

    Apache POI是一个强大的Java库,专门用于处理...以上就是使用Apache POI在Java中替换Word模板关键字和动态追加表格的知识点。通过熟练掌握这些技术,你可以构建出强大的文档自动化处理工具,满足各种业务需求。

    java POI-lib,word中写入图片

    Java POI库是Apache软件基金会开发的一个开源项目,专门用于处理Microsoft Office格式的文件,如Word、Excel和PowerPoint。在Java中,如果你需要在Word文档中插入图片,POI库提供了解决方案。这个过程涉及到对Word...

    java运用poi填充word数据并将多个word合并为一个

    首先,需要创建一个`XWPFDocument`对象来加载Word模板,接着遍历文档中的每一个段落(`XWPFParagraph`)和表格(`XWPFTable`),查找`XWPFFieldRun`或`XWPFTextRun`对象,这些对象代表了文本内容。找到占位符后,...

    java Apache poi 对word doc文件进行读写操作

    在实际应用中,Apache POI 的功能不仅限于简单的读写操作,还支持复杂的格式转换、样式调整和模板填充等功能,是 Java 开发者处理 Word 文件的强大工具。然而,需要注意的是,由于 `.doc` 文件格式的复杂性,处理...

    Java使用POI导出Word文档

    Java使用Apache POI库导出Word文档是一种常见的技术实践,特别是在企业级应用中,用于生成报告、合同或者自定义的数据输出。Apache POI是Apache软件基金会的一个开源项目,它提供了处理Microsoft Office格式(如Word...

Global site tag (gtag.js) - Google Analytics