zoukankan      html  css  js  c++  java
  • poi读写word模板 / java生成word文档

    有一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);
        }
    }

    以上方法,直接考入导入包后直接可运行

    本文转自:http://www.geekcome.com/content-10-3567-1.html

  • 相关阅读:
    ●BZOJ 2752 [HAOI2012]高速公路(road)
    ●UVA 11021 tunnello
    ●POJ 2794 Double Patience
    【51Nod1555】布丁怪
    【LG1600】[NOIP2016]天天爱跑步
    【LG5171】Earthquake
    【LG4437】[HNOI/AHOI2018]排列
    【CF1097F】Alex and a TV Show
    【51Nod 1769】Clarke and math2
    【LG5330】[SNOI2019]数论
  • 原文地址:https://www.cnblogs.com/dreammyle/p/4606846.html
Copyright © 2011-2022 走看看