一个使用Apache 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操作word的更多相关文章

  1. Java 操作Word书签(二):添加文本、图片、表格到书签内容

    在Java操作Word书签(一)中介绍了给Word中的特定段落或文字添加书签.读取及删除已有书签的方法,本文将继续介绍Java 操作Word书签的方法,即如何给已有的书签添加内容,包括添加文本.图片. ...

  2. Java操作word文档使用JACOB和POI操作word,Excel,PPT需要的jar包

    可参考文档: http://wibiline.iteye.com/blog/1725492 下载jar包 http://download.csdn.net/download/javashixiaofe ...

  3. [转载]java操作word(一)

    一. 需求背景 在做项目的过程中,经常会遇到要把数据库数据导出到Word文件中的需求,因为很多情况下,我们需要将数据导出到WORD中进行打印.此需求可以通过用程序填充数据到word模板中来实现.所谓模 ...

  4. [原创]java操作word(一)

    一. 需求背景 在做项目的过程中,经常会遇到要把数据库数据导出到Word文件中的需求,因为很多情况下,我们需要将数据导出到WORD中进行打印.此需求可以通过用程序填充数据到word模板中来实现.所谓模 ...

  5. Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行

    本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...

  6. Java 操作Word书签(三):用文本、图片、表格替换书签

    本篇文章将继续介绍通过Java来操作Word书签的方法,即替换Word中已有书签,包括用新的文本.图片.表格等替换原有书签处的内容. 使用工具:Free Spire.Doc for Java (免费版 ...

  7. Java 操作Word表格

    本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...

  8. java操作word,excel,pdf

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  9. JAVA操作word方法

    jacob,功能非常强大,能操作word,excel和pdf.下载地址是:http://sourceforge.net/projects/jacob-project/ 1.新建一个文档  Dispat ...

随机推荐

  1. [转]Worksheet.Change Event (Excel)

    本文转自:https://msdn.microsoft.com/en-us/library/office/ff839775.aspx#AboutContributor Example   The fo ...

  2. USACO section1.1 Broken Necklace

    /* ID: vincent63 LANG: C TASK: beads */ #include <stdio.h> #include<stdlib.h> #include&l ...

  3. 【读书笔记《Android游戏编程之从零开始》】20.游戏开发基础(游戏数据存储)

    对于数据的存储,Android 提供了4种保存方式. (1)SharedPreference 此方法适用于简单数据的保持,文如其名,属于配置性质的保存,不适合比较大的情况,默认存放在手机内存里 (2) ...

  4. 莫比乌斯反演 BZOJ 2820

    莫比乌斯反演真(TMD)难学.我自看了好长时间. BZOJ 2820: YY的GCD Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1384  Sol ...

  5. python读取数据库数据有乱码怎么解决?

    http://blog.sina.com.cn/s/blog_6826662b0100yeze.html 简单暴力,直接上代码 conn = MySQLdb.connect(host = " ...

  6. Mecanim 学习概述

    前言 我要逐个击破Unity中的知识点,包括1.Mecanim 2.NavMesh 3.4.3之后新的GUI系统 4.新的2D功能 5.Shader 6.性能及后期处理 早在2013年初的时候就听说过 ...

  7. 关于ZeroMQ的信息与文档

    1. 官方文档(英文,很长) http://zguide.zeromq.org/page:all 2. 云风的关于 http://blog.codingnow.com/2011/02/zeromq_m ...

  8. 判断变量是否为json对象

    var m ={a:'A'}; if(typeof m == 'object' && JSON.stringify(m).indexOf('{') == 0){//判断变量m是不是js ...

  9. 【转】【WPF】WPF样式(Style)—触发器

    样式(Styles)由三部分构成:设置器(Setter).触发器(Triggers).资源(Resources). (1)触发器,让样式的使用更加准确.灵活和高效. (2)触发器(Triggers)主 ...

  10. 使用SilverLight开发区域地图分析模块

    本人最近接收开发一个代码模块,功能主要是在页面上显示安徽省市地图,并且在鼠标移动到地图某市区域时,显示当前区域的各类信息等,一开始准备用百度地图,高德地图等地图工具进行开发,最后发现都不适合进行此类开 ...