java:读取并修改word中的内容并保存。

来源:互联网 发布:dota妹子知乎 编辑:程序博客网 时间:2024/05/17 06:16

1.读取word内容

2.修改要修改的内容

3.保存word

public Map readwriteWord(Map<String, String> map,String gcid,String deptid) {//查找word模板        BindContractTemplate bindContractTemplate = new BindContractTemplate();        bindContractTemplate.setGCId(gcid);        bindContractTemplate.setDeptId(deptid);        bindContractTemplate = bindContractTemplateService.get(bindContractTemplate);//吧服务器的模板下载到本机中        String photoUrl = bindContractTemplate.getContractTemplateUrl();        String fileNames = photoUrl.substring(photoUrl.lastIndexOf("/"));        String filePath = "/var/xxx/webserver/xxx/contract/";        boolean flag = saveUrlAs(photoUrl, filePath +fileNames);        // 读取word模板        FileInputStream in = null;        try {            in = new FileInputStream(new File(filePath + fileNames));            //in = new FileInputStream(new File("F:\\1495206705005.doc"));        } catch (FileNotFoundException e1) {            e1.printStackTrace();        }        HWPFDocument hdt = null;        try {            hdt = new HWPFDocument(in);        } catch (IOException e1) {            e1.printStackTrace();        }        Fields fields = hdt.getFields();        Iterator<Field> it = fields.getFields(FieldsDocumentPart.MAIN)                .iterator();        while (it.hasNext()) {            System.out.println(it.next().getType());        }        // 读取word文本内容        Range range = hdt.getRange();        // 替换文本内容        for (Map.Entry<String, String> entry : map.entrySet()) {            if (entry.getValue() == null) {                entry.setValue("  ");            }            range.replaceText("${" + entry.getKey() + "}", entry.getValue());        }        ByteArrayOutputStream ostream = new ByteArrayOutputStream();        String fileName = "" + System.currentTimeMillis();        fileName += ".doc";        FileOutputStream out = null;        String path = "http://test.fq.pms.efanghang.com/"+fileName;        String pathout = "/var/fangqian/webserver/qypms_boot_jar/contract/" + fileName;        //String path = "f:\\"+fileName;        try {            out = new FileOutputStream("/var/fangqian/webserver/qypms_boot_jar/contract/" + fileName, true);            //out = new FileOutputStream(path, true);        } 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();        }        Map mapout=new HashMap();        mapout.put("path",path);        mapout.put("pathout",pathout);        System.out.println("修改word完啦");        return mapout;    }


原创粉丝点击