Java实现word文档的导入、导出

新手上路,请多包涵

Java实现word文档的导入、导出 一直写Excel导入,word导入百度了一下 2003 2007版好像还有区别,有没有大佬来个工具类 或者 demo

阅读 4k
3 个回答

楼主还可以试试Free Spire.Doc for Java,是一款免费国产控件,也支持word文档导入导出。除此之外,还支持一系列word文档操作,比如,word转换成其他文档格式,打印word文档,加密解密文档。

新手上路,请多包涵

Java 用POI写就可以了~贴一下部分代码,前面都是一些业务查询然后塞数据文字,然后你顺着去网上搜一下应该就能找到更多示例~

String templatePath = request.getSession().getServletContext()
                .getRealPath("/template/导出模板.docx");
        String temDir = request.getSession().getServletContext()
                .getRealPath("/template");
        String tmpFileName = new Date().getTime() + ".docx";
        try {
            String exportFileName = "";
            String userAgent = request.getHeader("user-agent").toLowerCase();
            if (userAgent.contains("msie") || userAgent.contains("like gecko")) {
                exportFileName = URLEncoder.encode(reportTitle.toString(),
                        "UTF-8");
            } else {
                exportFileName = new String(reportTitle.toString().getBytes(
                        "utf-8"), "ISO-8859-1");
            }
            exportFileName += ".docx";

            XWPFDocument doc = WordExportUtil
                    .exportWord07(templatePath, params);

            // 输出内容及标题
            for (int i = 0; i < doc.getParagraphs().size(); i++) {
                XWPFParagraph p = doc.getParagraphs().get(i);
                if (p.getText().equals("---processContent---")) {
                    setParagraphs(p, processContent, titleList);
                } else if (p.getText().equals("---finishContent---")) {
                    setParagraphs(p, finishContent, titleList);
                }
            }

            String tmpPath = temDir + "/" + tmpFileName;
            FileOutputStream fos = new FileOutputStream(tmpPath);
            doc.write(fos);
            // 设置强制下载不打开
            response.setContentType("application/force-download");
            // 设置文件名
            response.addHeader("Content-Disposition", "attachment;fileName="
                    + exportFileName);
            OutputStream out = response.getOutputStream();
            doc.write(out);
            out.close();

导出的话有模板就用poi-tl很简单,没有就只能用poi硬搞了,poi啥版本都支持,poi-tl只用过docx,doc支不支持没注意
导入docx的话用docx4j,doc没做过,不过哪种方法解析都比较麻烦

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题