`
sdustyongz
  • 浏览: 87758 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java POI Word 写文档

 
阅读更多
1 package apache.poi;
  2
  3 import java.io.ByteArrayInputStream;
  4 import java.io.ByteArrayOutputStream;
  5 import java.io.File;
  6 import java.io.FileInputStream;
  7 import java.io.FileOutputStream;
  8 import java.io.IOException;
  9 import java.io.OutputStream;
10 import java.util.HashMap;
11 import java.util.Map;
12
13 import org.apache.poi.hwpf.HWPFDocument;
14 import org.apache.poi.hwpf.usermodel.Range;
15 import org.apache.poi.poifs.filesystem.DirectoryEntry;
16 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
17
18
19 public class ExportDocTest {
20    
21     public static void main(String[] args) {
22         String destFile="D:\\11.doc";
23         //#####################根据自定义内容导出Word文档#################################################
24         StringBuffer fileCon=new StringBuffer();
25         fileCon.append("               张大炮            男              317258963215223\n" +
26                 "2011     09        2013     07       3\n" +
27                 "    二炮研究              成人\n" +
28                 "2013000001                             2013     07     08");
29         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");
30        
31         new ExportDocTest().exportDoc(destFile, fileCon.toString());
32        
33         //##################根据Word模板导出单个Word文档###################################################
34         Map<String, String> map=new HashMap<String, String>();
35        
36         map.put("name", "Zues");
37         map.put("sex", "男");
38         map.put("idCard", "200010");
39         map.put("year1", "2000");
40         map.put("month1", "07");
41         map.put("year2", "2008");
42         map.put("month2", "07");
43         map.put("gap", "2");
44         map.put("zhuanye", "计算机科学与技术");
45         map.put("type", "研究生");
46         map.put("bianhao", "2011020301");
47         map.put("nowy", "2011");
48         map.put("nowm", "01");
49         map.put("nowd", "20220301");
50         //注意biyezheng_moban.doc文档位置,此例中为应用根目录
51         HWPFDocument document=new ExportDocTest().replaceDoc("biyezheng_moban.doc", map);
52         ByteArrayOutputStream ostream = new ByteArrayOutputStream();
53         try {
54             document.write(ostream);
55             //输出word文件
56             OutputStream outs=new FileOutputStream(destFile);
57             outs.write(ostream.toByteArray());
58             outs.close();
59         } catch (IOException e) {
60             e.printStackTrace();
61         }
62        
63     }
64    
65    
66     /**
67      *
68      * @param destFile
69      * @param fileCon
70      */
71     public void exportDoc(String destFile,String fileCon){
72         try {
73             //doc content
74             ByteArrayInputStream bais = new ByteArrayInputStream(fileCon.getBytes());
75             POIFSFileSystem fs = new POIFSFileSystem();
76             DirectoryEntry directory = fs.getRoot();
77             directory.createDocument("WordDocument", bais);
78             FileOutputStream ostream = new FileOutputStream(destFile);
79             fs.writeFilesystem(ostream);
80             bais.close();
81             ostream.close();
82            
83         } catch (IOException e) {
84             e.printStackTrace();
85         }
86     }
87    
88    
89     /**
90      * 读取word模板并替换变量
91      * @param srcPath
92      * @param map
93      * @return
94      */
95     public HWPFDocument replaceDoc(String srcPath, Map<String, String> map) {
96         try {
97             // 读取word模板
98             FileInputStream fis = new FileInputStream(new File(srcPath));
99             HWPFDocument doc = new HWPFDocument(fis);
100             // 读取word文本内容
101             Range bodyRange = doc.getRange();
102             // 替换文本内容
103             for (Map.Entry<String, String> entry : map.entrySet()) {
104                 bodyRange.replaceText("${" + entry.getKey() + "}", entry
105                         .getValue());
106             }
107             return doc;
108         } catch (Exception e) {
109             e.printStackTrace();
110             return null;
111         }
112     }
113
114 }
分享到:
评论

相关推荐

    java poi官方文档

    - **XWPF**: 用于处理新版本的Word文档(.docx),基于OpenXML标准。 3. **PowerPoint处理**: - **HSLF**: 处理老版本的PowerPoint文件(.ppt)。 - **XSLF**: 支持新版本的PowerPoint文件(.pptx)。 4. **...

    java 使用POI合并两个word文档.docx

    Java 使用 POI 合并两个 Word 文档 Java 是一种流行的编程语言,POI(Poor Obfuscation Implementation)是一个流行的 Java 库,用于操作 Microsoft Office 文件,包括 Word 文档。合并两个 Word 文档是指将两个...

    java poi把word文档转化为html,支持doc。

    综上所述,Java POI库提供了丰富的功能,使我们能够方便地处理Word文档,包括将它们转换为HTML格式。通过理解POI的工作原理和掌握相应的API,我们可以实现高效、准确的文件转换。在实际项目中,根据需求调整和优化...

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

    总的来说,Java POI为Java开发者提供了一个强大的工具,能够方便地处理Word文档,包括创建、修改和填充表单,这对于自动化报告生成、数据导出或任何基于Word文档的工作流程都是极其有用的。通过熟练掌握Java POI,你...

    java poi导出word

    在"java poi导出word"这个场景中,我们主要关注的是如何使用Java POI来创建和编辑Word文档。下面将详细介绍如何利用Java POI实现这些功能,并提供一些关键知识点。 1. 文字与段落: 在Java POI中,我们可以使用...

    java POI生成word.zip

    Java POI库是Apache软件基金会的一个开源项目,它允许开发者读取、创建、修改Microsoft Office格式的文件,包括Word文档(.doc和.docx)。在本案例中,"java POI生成word.zip"是一个压缩包,包含使用Java POI库生成...

    java poi 通过模板生成word文档

    总之,Java POI 提供了一种灵活且强大的方式来生成Word文档,通过模板和数据的结合,可以自动化创建定制化的报告、合同等文档,极大地提高了工作效率。正确理解和运用这一技术,能够满足各种业务场景下的文档生成...

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

    Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式,如 Word、Excel 和 PowerPoint。在处理 Word .doc 文件时,POI 提供了一个名为 HWPF(Horizontally Written Property Set Files)的模块。这个...

    Java POI 生成Word文档所需的jar包

    在Java中,如果你需要生成Word文档,POI库是首选工具之一。本篇文章将详细讲解如何利用Java POI生成Word文档,并介绍与之相关的jar包。 首先,我们来看一下Java POI的核心组件: 1. poi-3.11-20141221.jar:这是POI...

    Java使用POI导出Word文档

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

    java POI-lib,word中写入图片

    在Java中,如果你需要在Word文档中插入图片,POI库提供了解决方案。这个过程涉及到对Word文档的内部结构有深入的理解,包括其XML表示形式,以及如何通过API来操作这些元素。 首先,我们需要导入必要的库,包括POI的...

    java使用POI操作Word文档,写入文字与图片

    Java中的Apache POI库是一个强大的工具,用于读取、创建和修改Microsoft Office格式的文件,包括Word文档(.doc和.docx)。在这个场景下,我们将深入探讨如何使用POI库来操作Word文档,特别是写入文字和插入图片。 ...

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

    XWPFDocument可以读取、修改和创建Word文档。在生成新报告的过程中,我们需要先加载模板文件,这可以通过创建XWPFDocument对象并传入模板文件的输入流来实现。 文本插入通常涉及到XWPFParagraph和XWPFRun对象。...

    java--Poi 生成word文档

    Java中的Apache POI库是一个强大的工具,用于读取、创建和修改Microsoft Office格式的文件,包括Word文档。在这个“java--Poi 生成word文档”的示例中,我们将深入探讨如何利用POI库来生成Word文档。Apache POI提供...

    利用Java Apache POI 生成Word文档示例代码

    "利用Java Apache POI 生成Word文档示例代码" 本篇文章主要介绍了利用Java Apache POI 生成Word文档示例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 首先,Apache POI是一个开源的Java库,由Apache...

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

    本项目“Java利用poi对word插入文字图片”是一个具体的示例,旨在教给你如何使用Apache POI API在Word文档中插入文字和图片。下面将详细阐述相关的知识点。 首先,Apache POI提供了HWPF(Horrible Word Processor ...

    JAVA用POI生成Word文档

    在Java编程环境中,Apache POI库是一个非常实用的工具,它允许开发者创建、修改和读取Microsoft Office格式的文件,包括Word文档。本教程将详细讲解如何使用POI库生成Word文档并提供下载功能。 首先,我们需要理解...

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

    在Java编程环境中,Apache POI库是一个非常实用的工具,它允许开发者读写Microsoft Office格式的文件,包括Word文档。本篇文章将详细讲解如何利用Apache POI库在Java中实现Word文档的数据填充以及多文件合并。 1. *...

    POI word目录处理备忘

    标题“POI word目录处理备忘”涉及到的是Apache POI库在处理Microsoft Word文档时,尤其是涉及Word文档目录(TOC,Table of Contents)的操作。Apache POI是一个流行的开源Java库,它允许开发者读取、写入和修改...

Global site tag (gtag.js) - Google Analytics