poi读写word模板 / java生成word文档
2015-06-29 10:02
603 查看
有一word文档表格
形如:
姓名 ${name}
电话 ${tel}
从数据库读取记录替换上述变量
以上方法,直接考入导入包后直接可运行
本文转自:http://www.geekcome.com/content-10-3567-1.html
形如:
姓名 ${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); } }
以上方法,直接考入导入包后直接可运行
本文转自:http://www.geekcome.com/content-10-3567-1.html
相关文章推荐
- Java学习笔记:JFrame与Frame的区别
- java---使用日志输出信息的方法
- JAVA安装
- Java Servlet完全教程
- java本地文件操作
- Java String.format
- Spring 配置定时器(注解+xml)方式—整理
- BigDecimal.setScale 处理java小数点
- BigDecimal介绍
- spring依赖注入失效的原因之一
- java-web-j2e学习建议路线
- java迷宫算法
- java线程堆栈问题定位第二讲:多线程中的锁解读
- Java深入浅出系列(四)——深入剖析动态代理--从静态代理到动态代理的演化
- Java深入浅出系列(三)——深入剖析动态代理--性能比较
- Java深入浅出系列(二)——深入剖析代理模式
- Java深入浅出系列(一)——浅析Java反射机制
- maven项目 启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 问题
- ACM程序设计大赛-------- 最少钱币数(Java代码)