将模板word中的特定字段替换(将数据导入word中)
来源:互联网 发布:淘宝客服培训ppt下载 编辑:程序博客网 时间:2024/05/23 00:19
一、 将模板word中的特定字段替换(将数据导入word中)
所用jar包
一、 将模板word中的特定字段替换(将数据导入word中)所用jar包开发代码/** * @Title createContract * @description 生成合同文档 * @param tmp 模板文件 * @param dst 生成后的合同文件 * @param values 合同中需要替换的内容(不含第1个多行表格) * @param list 第一个表格中需要替换的内容(格式与values相同) */ public static void createContract(File tmp, File dst, Map<String,Object> values, List<Map<String,Object>> list){ FileInputStream in = null; try { in = new FileInputStream(tmp); } catch (FileNotFoundException e1) { e1.printStackTrace(); } HWPFDocument hdt = null; try { hdt = new HWPFDocument(in); } catch (IOException e1) { e1.printStackTrace(); } Range range = hdt.getRange(); //替换第一个表格内容 TableIterator tableIt = new TableIterator(range); // if (tableIt.hasNext()) { // Table tb = (Table) tableIt.next(); // int lines = list.size();// if(!values.containsKey("inv_UsrCustId")){// for(int i=0; i<lines; i++){// TableRow tr = tb.getRow(i+2);// // //System.out.println(tr.text());// Map<String,String> kvs = list.get(i);// for (Map.Entry<String,String> entry: kvs.entrySet()) {// tr.replaceText("${" + entry.getKey() + "}",entry.getValue());// } // }// //删除多余行// int trCnt = tb.numRows(); //总行数// // while(trCnt>lines+2){//有2行表头// tb.getRow(trCnt-1).delete();// trCnt --;// }// }// } //System.out.println(range.text()); //替换其他文本内容 String str = range.text(); Map<String,Object> map = new HashMap<String,Object>(); for (Map.Entry<String,Object> entry: values.entrySet()) { String key = entry.getKey(); int i = str.indexOf(key); if(!(i == -1)){ map.put(key, values.get(key)); } } for(Map.Entry<String,Object> entry: map.entrySet()){ //System.out.println(entry.getKey() + ":"+entry.getValue()); range.replaceText("${" + entry.getKey() + "}", entry.getValue()+""); } System.out.println("------------------------------分割线------------------------"); System.out.println(range.text()); ByteArrayOutputStream ostream = new ByteArrayOutputStream(); FileOutputStream out = null; try { out = new FileOutputStream(dst,false); } catch (FileNotFoundException e) { e.printStackTrace(); } try { hdt.write(ostream); } catch (IOException e) { e.printStackTrace(); } //输出字节流 try { out.write(ostream.toByteArray()); } catch (IOException e) { e.printStackTrace(); } try { out.close(); } catch (IOException e) { e.printStackTrace(); } try { ostream.close(); } catch (IOException e) { e.printStackTrace(); } }
阅读全文
0 0
- 将模板word中的特定字段替换(将数据导入word中)
- 通过模板将数据导入到Word中
- 将ClientDateSet中的图片字段copy到word文档中
- 将数据导入到Excel和Word中
- 如何使用免费控件将word表格中的数据导入到excel中
- 如何将VB中的数据导出excel,word中去!
- 将GridView中的数据导出到Excel / Word中
- 将GridView中的数据导出到Excel / Word中
- 将DBGrid中的数据导出到Word
- asp.net下将页面内容导入到word模板中的方法
- Android 将数据写入到word中
- 使用POI替换word中的特定字符/文字)【改进】
- 将 Excel 表格导入 Word
- VB如何将数据导入WORD模版打印
- 学习笔记—将数据导入Word或Excel
- 学习笔记—将数据导入Word或Excel
- 根据word模版将数据导入到数据库
- 通过VBA将excel数据导入至word文档
- Xlistview加载刷新(副类)
- Quartus II 13.0 (64-bit)安装破解教程
- 函数式编程
- DDR3参数分析
- Override和Overlode区别
- 将模板word中的特定字段替换(将数据导入word中)
- liunx 系统防火墙firewalld 设置
- getOutputStream() has already been called for this response java.lang.IllegalStateException: getOutp
- Dubbo Failed to save registry store file, cause: Can not lock the registry cache file
- “计算机科学与技术”专业:解放我们的大脑
- Linux下oracle数据库启动和关闭操作
- 史上最牛的css代码
- 搭建Nginx(负载均衡)+Redis(Session共享)+Tomcat集群
- ImageLoader使用的DiskLruCache硬盘缓存算法