有一word文档表格

形如:

姓名 ${name}

电话 ${tel}

从数据库读取记录替换上述变量

  1. import java.io.FileOutputStream;
  2. import java.util.HashMap;
  3. import java.util.Iterator;
  4. import java.util.List;
  5. import java.util.Map;
  6. import java.util.Map.Entry;
  7. import org.apache.poi.POIXMLDocument;
  8. import org.apache.poi.xwpf.usermodel.XWPFDocument;
  9. import org.apache.poi.xwpf.usermodel.XWPFTable;
  10. import org.apache.poi.xwpf.usermodel.XWPFTableCell;
  11. import org.apache.poi.xwpf.usermodel.XWPFTableRow;
  12.  
  13. public class DOCWriter {
  14. public static void searchAndReplace(String srcPath, String destPath,
  15. Map<String, String> map) {
  16. try {
  17. XWPFDocument document = new XWPFDocument(POIXMLDocument
  18. .openPackage(srcPath));
  19. Iterator it = document.getTablesIterator();
  20. while (it.hasNext()) {
  21. XWPFTable table = (XWPFTable) it.next();
  22. int rcount = table.getNumberOfRows();
  23. for (int i = 0; i < rcount; i++) {
  24. XWPFTableRow row = table.getRow(i);
  25. List<XWPFTableCell> cells = row.getTableCells();
  26. for (XWPFTableCell cell : cells) {
  27. for (Entry<String, String> e : map.entrySet()) {
  28. if (cell.getText().equals(e.getKey())) {
  29. cell.removeParagraph(0);
  30. cell.setText(e.getValue());
  31. }
  32. }
  33. }
  34. }
  35. }
  36. FileOutputStream outStream = null;
  37. outStream = new FileOutputStream(destPath);
  38. document.write(outStream);
  39. outStream.close();
  40. } catch (Exception e) {
  41. e.printStackTrace();
  42. }
  43. }
  44.  
  45. public static void main(String[] args) throws Exception {
  46. HashMap map = new HashMap();
  47. map.put("${name}", "王五");
  48. map.put("${tel}", "8886666");
  49. String srcPath = "c:\\1.docx";
  50. String destPath = "c:\\2.doc";
  51. searchAndReplace(srcPath, destPath, map);
  52. }
  53. }

以上方法,直接考入导入包后直接可运行

本文转自:http://www.geekcome.com/content-10-3567-1.html

poi读写word模板 / java生成word文档的更多相关文章

  1. c语言小程序以及java生成注释文档方法

    c语言小程序:sizeof和strlen() sizeof运算符以字节为单位给出数据的大小,strlen()函数以字符为单位给出字符串的长度,字符和字节不是一回事. char类型用于存储字母和标点符号 ...

  2. java生成excel文档

    要做一个后台自动化,要先预先生成一份文档,以下内容生成了文档 首先下载jxl.jar包,下载地址:http://download.csdn.net/detail/prstaxy/4469935 1.生 ...

  3. Chimm.Excel —— 使用Java 操作 excel 模板文件生成 excel 文档

    Chimm.Excel -- 设置模板,填充数据,就完事儿了~ _____ _ _ _____ _ / __ \ | (_) | ___| | | | / \/ |__ _ _ __ ___ _ __ ...

  4. C# 通过word模板动态生成Word

    object oMissing = System.Reflection.Missing.Value; Word._Application oWord = new Word.Application(); ...

  5. Java生成PDF文档(表格、列表、添加图片等)

    需要的两个包及下载地址: (1)iText.jar:http://download.csdn.net/source/296416 (2)iTextAsian.jar(用来进行中文的转换):http:/ ...

  6. java生成API文档

    1.选择项目右键-Export\javadoc 2.选择生成工具在jdk安装目录下jdk\bin\javadoc.exe 3.在Eclipse里 export 选 JavaDoc,在向导的最后一页的E ...

  7. Java生成 Word文档的并打印解决方案

    户要求用程序生成标准的word文档,要能打印,而且不能变形,以前用过很多解决方案,都在客户严格要求下牺牲的无比惨烈. POI读word文档还行,写文档实在不敢恭维,复杂的样式很难控制不提,想象一下一个 ...

  8. 使用Java生成word文档(附源码)

    当我们使用Java生成word文档时,通常首先会想到iText和POI,这是因为我们习惯了使用这两种方法操作Excel,自然而然的也想使用这种生成word文档.但是当我们需要动态生成word时,通常不 ...

  9. Java生成word文档

    itext-rtf-2.1.7.jar,下载地址:http://download.csdn.net/detail/xuxu198899223/7717727 itext-2.1.7.jar 下载地址: ...

随机推荐

  1. spring3.2.8+quartz2.2.0(比较全,对比quartz1.x的配置)

    spring3.2.8 + quartz2.2.0报错: java.lang.IncompatibleClassChangeError: class org.springframework.sched ...

  2. Ribbon_窗体_实现Ribbon风格的窗体

    Ribbon_窗体_实现Ribbon风格的窗体 随着office2007的兴起,微软让我们看到了Ribbon风格的窗体,现在很多软件也都开始使用Ribbon风格.那么我们如果要自己开发,应当怎么做呢? ...

  3. Java for LeetCode 165 Compare Version Numbers

    Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 &l ...

  4. C++ 提取字符串中的数字

    C++ 提取字符串中的数字 #include <iostream> using namespace std; int main() { ] = "1ab2cd3ef45g&quo ...

  5. ping: unknown host www.baidu.com

    #注意有很多的DNS服务器 为了防止DDOS攻击 所以都禁止PING [root@86 ~]# ping -c 2 www.baidu.com ping: unknown host www.baidu ...

  6. Freemarker中遍历List以及内置函数使用

    在Freemarker应用中经常会遍历List获取需要的数据,并对需要的数据进行排序加工后呈现给用户. 那么在Freemarker中如何遍历List,并对List中数据进行适当的排序呢?一. Free ...

  7. mysql的日期存储字段比较int,datetime,timestamp区别

    1.首先是我们分析datetime长度是8个字节,INT的长度是4个字节,存储空间上比datatime少. 2.int存储索引的空间也比datetime少,排序效率高,查询速度比较快. 3.方便计算, ...

  8. [原]FileHelper-文件操作辅助类

    using System; using System.Collections.Generic; using System.IO; using System.Text; namespace Whir.S ...

  9. Java Hour3

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 本文作者Java 现经验约为2 Hour,请各位不吝赐教. Hour3 包和i ...

  10. eclipse集成maven3后,创建java项目详细图解

    1.创建一个Java项目 1)File--->New--->Other--->Maven--->Maven Projet 2)选择maven-archetype-quickst ...