`
apchy
  • 浏览: 60867 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

poi读写word模板

    博客分类:
  • java
阅读更多

有一word文档表格

形如:

姓名 ${name} 

电话 ${tel}

 

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

 

import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.poi.POIXMLDocument;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;


public class DOCWriter {

 public static void searchAndReplace(String srcPath ,String destPath,Map<String,String> map) {
  try {
   XWPFDocument document = new XWPFDocument(POIXMLDocument.openPackage(srcPath));
   Iterator it = document.getTablesIterator();
   while(it.hasNext()){
    XWPFTable table = (XWPFTable)it.next();
    int rcount = table.getNumberOfRows();
    for(int i =0 ;i < rcount;i++){
     XWPFTableRow row = table.getRow(i);
     List<XWPFTableCell> cells =  row.getTableCells();
     for (XWPFTableCell cell : cells){
        for(Entry<String,String> e : map.entrySet()){
         if (cell.getText().equals(e.getKey())){
          cell.removeParagraph(0);
          cell.setText(e.getValue());
         }
        }
     }
    }
   }
       FileOutputStream outStream = null;
       outStream = new FileOutputStream(destPath);
          document.write(outStream);
          outStream.close();
  } catch (Exception e) {
   e.printStackTrace();
  }

 }

 public static void main(String[] args) throws Exception {
  HashMap map=new HashMap();
  map.put("${name}", "王五");
  map.put("${tel}", "8886666");
  String srcPath = "c:\\1.docx";
  String destPath = "c:\\2.doc";
  searchAndReplace(srcPath ,destPath,map);

 }
}

 

分享到:
评论
5 楼 lixinyouapple 2012-06-19  
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
at poi07.DOCWriter.searchAndReplace(DOCWriter.java:16)
4 楼 apchy 2012-05-26  
poi需要3.7
3 楼 1154934572 2012-05-15  
为什么我的程序找不到row.getTableCells();这个方法,我也引入了import org.apache.poi.xwpf.usermodel.XWPFTableRow;请问你用的是那个版本的包呢?我用的是3.5的!
2 楼 phrmgb 2011-11-27  
缺少的包找到了
1 楼 phrmgb 2011-11-27  
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
at poi07.DOCWriter.searchAndReplace(DOCWriter.java:16)
at poi07.DOCWriter.main(DOCWriter.java:48)

相关推荐

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

    6. **读取Word模板**:如果要使用模板,可以先用`XWPFDocument`打开模板文件,然后替换模板中的占位符。 7. **写入文件**:最后,使用`document.write(outputStream)`将文档写入到指定的OutputStream。 在实际应用...

    利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码。解决模板读取异常问题,提供wordUtils工具类(各种功能实现)

    利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码。解决模板读取异常问题,提供wordUtils工具类(各种功能实现)

    利用poi+word模版书签,向word中插入数据

    1. **创建或读取Word模板**:使用Apache POI的XWPFDocument类,加载预先设计好的包含书签的Word模板文件。 2. **查找书签**:通过XWPFDocument对象的getBookmarks()方法获取模板中的所有书签,每个书签都是一个...

    (改进版本)利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码

    在这个"(改进版本)利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码"项目中,我们将深入探讨如何使用POI来处理Word文档。 首先,Apache POI提供了HWPF(Horizontally-Writeable & Portable ...

    poi操作word模板

    在"poi操作word模板"的场景中,我们主要关注如何使用Apache POI库来自动化填充Word文档模板,这在批量生成报告、合同或其他需要标准化格式但需个性化数据的文档时非常有用。 首先,理解Apache POI的基本概念是必要...

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

    在这个例子中,我们将探讨如何使用POI库来处理Word文档,特别是利用模板文件循环输出表格行并导出新的Word文档。这个过程在数据分析、报告生成或自动化文档制作等场景中非常有用。 首先,我们需要理解Word文档的...

    利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码

    在这个场景下,我们将关注如何使用POI来读取Word模板文件,并填充逻辑数据,最后生成新的Word文档。以下是对这个过程的详细讲解。 1. **Apache POI介绍** Apache POI是开源项目,专门用于处理微软的Office文档格式...

    POI替换word模板中的关键字

    在Word模板中,可以预先定义好关键字,然后通过POI读取这些模板并找到关键字的位置。使用`XWPFDocument`对象,你可以加载.docx文件,接着通过`XWPFParagraph`和`XWPFRun`对象遍历文档的段落和文本运行。一旦找到...

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

    3. **读取Word模板**:使用XWPFDocument类,你可以加载一个.docx模板文件。这个类提供了访问文档内容的方法,包括段落(XWPFParagraph)、表格(XWPFTable)、图片(XWPFPictureData)等。 4. **替换标签**:在读取...

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

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

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

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

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

    1. **读取Word模板**:使用XWPFDocument类打开模板文件,这将允许我们访问文档中的各个元素,如段落、表格、图片等。 2. **查找占位符**:在模板文档中,我们可能会有特定的文本或字段作为占位符,例如"{name}"或"{...

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

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

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

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

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

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

    word文档模板-使用poi技术替换文档中的变量

    读取Word模板 使用POI提供的类`XWPFDocument`读取Word文档: ```java FileInputStream fis = new FileInputStream("template.docx"); XWPFDocument doc = new XWPFDocument(fis); ``` ##### 3. 替换变量 遍历...

    poi导入word和图片

    本文档将详细介绍如何使用 POI 库来读取 Word 文档(包括 .doc 和 .docx 格式)中的文本内容以及提取其中的图片。 #### 二、环境配置与依赖 为了能够顺利地执行示例代码,需要确保项目的 build 环境包含了以下依赖...

    使用poi替换word中的图片

    2. **读取Word文档**: 使用XWPFDocument类读取.docx文件,HWPFDocument类读取.doc文件。例如: ```java FileInputStream fis = new FileInputStream("input.docx"); XWPFDocument document = new XWPFDocument...

    poi3.15,word模板以及代码

    "有main函数测试类"意味着提供了一个可以直接运行的Java程序,通过main方法执行测试,展示如何使用POI操作Word模板。这对于初学者来说是非常有价值的,因为可以直接运行并理解代码的工作原理。 "保管好用"提示了这...

    FreeMarker+poi 模板生成word+导入图片

    结合FreeMarker和Apache POI,我们可以创建一个模板Word文档,其中包含占位符,然后使用POI读取和填充这个模板,同时插入图片,生成最终的动态Word文档。以下是这个过程的大致步骤: 1. **创建模板**: 使用...

Global site tag (gtag.js) - Google Analytics