POI 使用替换字符方式进行模板生成word
生活随笔
收集整理的這篇文章主要介紹了
POI 使用替换字符方式进行模板生成word
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、Word生成
package com.tepper.common.util;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.ParagraphAlignment; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.apache.poi.xwpf.usermodel.XWPFRun; import org.apache.poi.xwpf.usermodel.XWPFTable; import org.apache.poi.xwpf.usermodel.XWPFTableCell; import org.apache.poi.xwpf.usermodel.XWPFTableRow;/*** Word寫入器* * DocWriter* * @author 潘廣偉* @Email p_3er@qq.com* @Date 2015-3-25 上午8:53:17* * @version 1.0.0* */ public class DocWriter {/*** 根據(jù)模板生成word文檔* createByTemplate* * @param srcPath* @param map* @return * @exception * @since 1.0.0*/public static XWPFDocument createByTemplate(String srcPath,Map<String, String> map) {XWPFDocument document = null;try {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);/*** 新的字符及樣式*/XWPFParagraph paragraph = new XWPFParagraph(cell.getCTTc().addNewP(), cell);paragraph.setAlignment(ParagraphAlignment.LEFT);XWPFRun run = paragraph.createRun();run.setFontSize(14);run.setFontFamily("宋體");run.setText(e.getValue());}}}}}} catch (Exception e) {e.printStackTrace();}return document;} }2、通過response導(dǎo)出
Map<String, String> map = new HashMap<String, String>();map.put("${invoiceaccepter}", request.getParameter("invoiceaccepter"));map.put("${amountPrice}",request.getParameter("amountPrice")+"萬");map.put("${invoicenum}","NO."+request.getParameter("invoicenum"));map.put("${count}",request.getParameter("count"));map.put("${invoiceTime}",request.getParameter("invoiceTime"));String srcPath = request.getSession().getServletContext().getRealPath("/") + "print_temp/invoice.docx";XWPFDocument document = DocWriter.createByTemplate(srcPath, map);response.setHeader("Content-disposition", "attachment;filename=ReturnReceipt.doc"); document.write(response.getOutputStream());總結(jié)
以上是生活随笔為你收集整理的POI 使用替换字符方式进行模板生成word的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信开发(02)之处理微信客户端发来的消
- 下一篇: oracle创建表空间脚本