有一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);
}
}
分享到:
相关推荐
6. **读取Word模板**:如果要使用模板,可以先用`XWPFDocument`打开模板文件,然后替换模板中的占位符。 7. **写入文件**:最后,使用`document.write(outputStream)`将文档写入到指定的OutputStream。 在实际应用...
利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码。解决模板读取异常问题,提供wordUtils工具类(各种功能实现)
1. **创建或读取Word模板**:使用Apache POI的XWPFDocument类,加载预先设计好的包含书签的Word模板文件。 2. **查找书签**:通过XWPFDocument对象的getBookmarks()方法获取模板中的所有书签,每个书签都是一个...
在这个"(改进版本)利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码"项目中,我们将深入探讨如何使用POI来处理Word文档。 首先,Apache POI提供了HWPF(Horizontally-Writeable & Portable ...
在"poi操作word模板"的场景中,我们主要关注如何使用Apache POI库来自动化填充Word文档模板,这在批量生成报告、合同或其他需要标准化格式但需个性化数据的文档时非常有用。 首先,理解Apache POI的基本概念是必要...
在这个例子中,我们将探讨如何使用POI库来处理Word文档,特别是利用模板文件循环输出表格行并导出新的Word文档。这个过程在数据分析、报告生成或自动化文档制作等场景中非常有用。 首先,我们需要理解Word文档的...
在这个场景下,我们将关注如何使用POI来读取Word模板文件,并填充逻辑数据,最后生成新的Word文档。以下是对这个过程的详细讲解。 1. **Apache POI介绍** Apache POI是开源项目,专门用于处理微软的Office文档格式...
在Word模板中,可以预先定义好关键字,然后通过POI读取这些模板并找到关键字的位置。使用`XWPFDocument`对象,你可以加载.docx文件,接着通过`XWPFParagraph`和`XWPFRun`对象遍历文档的段落和文本运行。一旦找到...
3. **读取Word模板**:使用XWPFDocument类,你可以加载一个.docx模板文件。这个类提供了访问文档内容的方法,包括段落(XWPFParagraph)、表格(XWPFTable)、图片(XWPFPictureData)等。 4. **替换标签**:在读取...
在这个场景中,我们关注的是如何利用Java POI库通过Word模板生成包含特定文本、表格和图片的报告。 首先,我们需要了解Java POI中的XWPFDocument类,它是用来处理.docx文件的。XWPFDocument可以读取、修改和创建...
通过这个资料包,开发者将学习到如何利用Apache POI在Java中高效地处理Word模板,从而创建出定制化的Word报表,这对于自动化报告生成、数据分析报告以及各类业务报表的制作具有很高的实用价值。
1. **读取Word模板**:使用XWPFDocument类打开模板文件,这将允许我们访问文档中的各个元素,如段落、表格、图片等。 2. **查找占位符**:在模板文档中,我们可能会有特定的文本或字段作为占位符,例如"{name}"或"{...
在本主题中,我们将深入探讨如何使用Java POI流处理Word模板,插入文本、表格和图片,以及生成新的Word报告。 1. **Java POI流处理Word模板**: - POI API提供了`XWPFDocument`类来处理`.docx`文件,这是Word 2007...
在Word模板替换中,我们可以使用XWPFDocument类来打开一个现有的.docx文件,然后遍历文档中的所有文本元素,例如XWPFParagraph和XWPFRun,查找需要替换的占位符。一旦找到,我们就可以用新的内容替换它们。例如,你...
在实际应用中,Apache POI 的功能不仅限于简单的读写操作,还支持复杂的格式转换、样式调整和模板填充等功能,是 Java 开发者处理 Word 文件的强大工具。然而,需要注意的是,由于 `.doc` 文件格式的复杂性,处理...
读取Word模板 使用POI提供的类`XWPFDocument`读取Word文档: ```java FileInputStream fis = new FileInputStream("template.docx"); XWPFDocument doc = new XWPFDocument(fis); ``` ##### 3. 替换变量 遍历...
本文档将详细介绍如何使用 POI 库来读取 Word 文档(包括 .doc 和 .docx 格式)中的文本内容以及提取其中的图片。 #### 二、环境配置与依赖 为了能够顺利地执行示例代码,需要确保项目的 build 环境包含了以下依赖...
2. **读取Word文档**: 使用XWPFDocument类读取.docx文件,HWPFDocument类读取.doc文件。例如: ```java FileInputStream fis = new FileInputStream("input.docx"); XWPFDocument document = new XWPFDocument...
"有main函数测试类"意味着提供了一个可以直接运行的Java程序,通过main方法执行测试,展示如何使用POI操作Word模板。这对于初学者来说是非常有价值的,因为可以直接运行并理解代码的工作原理。 "保管好用"提示了这...
结合FreeMarker和Apache POI,我们可以创建一个模板Word文档,其中包含占位符,然后使用POI读取和填充这个模板,同时插入图片,生成最终的动态Word文档。以下是这个过程的大致步骤: 1. **创建模板**: 使用...