一个使用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 }

例子中用到的附件(点击下载)

转载于:https://www.cnblogs.com/shihujiang/archive/2012/04/11/2442013.html

Java POI Word 写文档相关推荐

  1. 使用Java POI读取excel文档

    Java使用POI读取excel文档教程 一:Poi的介绍 1.简介 1.由apache公司提供 2.Java编写的免费开源的跨平台的Java API 3.提供API给Java程序对Microsoft ...

  2. idea将java导出word文档,Java导出word/execl文档

    使用FreeMarker的模板技术快速实现动态生成word 实现思路是这样的:先创建一个word文档,按照需求在word中填好一个模板,然后把对应的数据换成变量${},然后将文档保存为xml文档格式, ...

  3. Word 写文档时使域背景为灰色以便清晰显示

    效果如图:(转为PDF中灰色不会显示) 方法:[文件]--[选项]--[高级]--[显示文档内容]--[域底纹]勾选"始终显示",如图:

  4. java后台处理excel_java后台利用Apache poi 生成excel文档提供前台下载示例

    之前在项目中会用到在java在后台把数据填入Word文档的模板来提供前台下载,为了自己能随时查看当时的实现方案及方便他人学习我写了这篇博客,访问量已经是我写的博客里第一了.于是乎我在学会用Java在后 ...

  5. 比Word更优雅的记笔记/写文档/交报告方式

    比Word更优雅的记笔记/写文档/交报告方式 markdown+vscode->pdf 背景 最近在上的一门<信息系统开发工具>课老师要求实验以后都要交实验报告,但是和以往不同的是, ...

  6. Java使用POI将doc文档转为Html

    Java使用POI将doc文档转为Html 前提 几个使用到的类 几个方法的理解 converter.setPicturesManager(xxxx) converter.processDocumen ...

  7. Java教程:使用POI读取excel文档(根据BV1bJ411G7Aw整理)

    Java教程:使用POI读取excel文档(根据BV1bJ411G7Aw整理) 最近公司需要我做一个导出Excel表格的功能,为此来学习一下POI,在这里记录一下学习笔记.B站直接搜BV1bJ411G ...

  8. JAVA 利用poi EXCLE模板文档导出数据

    JAVA 利用poi EXCLE模板文档导出数据 1.导入jar包 下载地址:添加链接描述 提取码:xqkg 2.EXCLE模板 3.代码示例 package utill;import java.io ...

  9. ictclas java_ICTCLAS50 基于中科院分词作的java 工具,内容详细各个函数都有实现 含有word解析文档 Develop 238万源代码下载- www.pudn.com...

    文件名称: ICTCLAS50下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 2983 KB 上传时间: 2013-05-15 下载次数: 11 提 供 者: 安 ...

最新文章

  1. PowerDesigner中如何给字符串字段设置默认值 .
  2. Flowable最新版(6.4) 新特性
  3. 分布式离线计算—Spark—SparkStreaming
  4. php改成IP连接数据库,thinkphp,pdo连接数据库,host自动被替换成了本机ip
  5. vue-resource使用
  6. 第2课 桐桐的运输方案《聪明人的游戏 信息学探秘.提高篇》
  7. python中byte2array报错_python – 使用ByteArrays解压缩Zlib字符串
  8. 简明Linux命令行笔记:nl
  9. NXP S32K RTC模块手册中文
  10. oracle设置默认值为当前时间_把锁屏密码设置成当前时间,随时间永远变动!
  11. JDK1.8源码(十一)——java.util.TreeMap类
  12. win10安装visio2010出错_win7安装Office Visio 2010时出现错误怎么办
  13. PR视频剪辑教程--视频特效和转场
  14. 新一代物联网商用全面铺开 NB-IoT擎起新智慧城市
  15. Android studio 中的AVD manger启动失败原因解决方法
  16. 安全测试(三) 服务器安全 渗透测试 常规服务器安全漏洞 高危端口暴露、弱口令密码、暴力破解、服务器提权、Mysql数据库提权等 浅谈《社会工程学》实战案例
  17. 专利大战中 苹果被迫曝光的8个秘密
  18. canvas——绘制文字
  19. SaaS前端规范架构
  20. 防诈骗安全教育宣传防诈骗知识PPT模板

热门文章

  1. 人工智能综述性论文_人工智能论文研读:深度学习算法与架构综述(包含详细统计表)...
  2. onlaunch 异步_微信小程序之onLaunch与onload异步问题
  3. jeesite如何已生成数据的数据源_jeesite 多数据源配置
  4. 最新python招聘_重磅 | 最新报告:会Python竟成四大招人硬性指标?
  5. 全文检索技术 mysql_浅谈MYSQL的全文检索的应用
  6. linux ipv4参数查看,Linux内核参数之IPV4变量引用
  7. Python数据结构与算法(1.7)——算法分析
  8. 了解SQL Server SELECT INTO语句
  9. Node JS环境设置– Node.js安装
  10. C# DateTime日期格式