poi读写word模板
2015-10-09 09:55
399 查看
有一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);
}
}
形如:
姓名 ${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);
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统