zoukankan      html  css  js  c++  java
  • java替换word表格2007

    package demo;
    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()) {
                                    String key = e.getKey();
                                    String text = cell.getText();
                                    String value = e.getValue();
                                    System.out.println(text);
                                    System.out.println(key);
                                    System.out.println(value);
                                    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("${m}", "王五");
                map.put("${n}", "8886666");
                map.put("${t}", "666");
                String srcPath = "D:\01.docx";
                String destPath = "D:\2.docx";
                searchAndReplace(srcPath, destPath, map);
            }
        
    }

  • 相关阅读:
    TCP的发送缓冲区和接收缓冲区
    【 Linux 】单台服务器上并发TCP连接数(转)
    Mosquitto----服务器日志
    Mqtt ----心跳机制
    class文件无论是32位还是64位jdk编译出来的,都可以通用
    启动eclipse时出现“Failed to load the JNI shared library jvm.dll”错误及解决-及eclipse版本查看
    Ant编译提示“Unsupported major.minor version 52.0”
    HanLP自然语言处理包介绍
    Lazarus安装使用
    Java中字符串转为16进制表示
  • 原文地址:https://www.cnblogs.com/guolsblog/p/5956681.html
Copyright © 2011-2022 走看看