精华内容
下载资源
问答
  • Java操作word的方法
    2021-03-04 04:55:41

    使用Java操作word的方法有几个,我一一列出来:IText,Apache的POI包,tm-extractors包,jacob包,java2word包。

    IText包比较大,但是功能比较全。而且比较成熟,用的人也多。

    POI包是Apache的一个项目,不过现在已经停止更新了,而且我看了里面的Example,感觉调用起来很麻烦。用过之后再也不想用了。

    tm-extractors包的API比较简单,调用起来很方便,代码量也少。

    jacob包我觉得是最强大的,可以操作word,excel。因为调用的是微软底层的dll文件,需要在system32目录下放置jacob.dll,然后在classpath里面添加jacob.jar文件。推荐使用1.9版本,之前1.8版本调用起来就算你的代码没有写错也会出现一些莫名其妙的异常。

    java2word也是调用微软的底层dll文件,有安装包,也有解压包,安装包会将jacob.dll文件装在system32目录下。之后将java2word.jar加到classpath就可以使用了。感觉如果只是操作word文档的话,比jacob用起来要简单和舒服。代码量也少,很清晰。

    另外,使用jacob和java2word的话,会在调用WINWORD进程,如果多人并发访问服务器的word文件的话,会造成内存不足。我的是office2003,打开一个WINWORD进程需要22M。

    更多相关内容
  • java操作word

    2016-11-05 20:08:34
    这个是使用java代码生成的word表格,使用的是docx4j
  • java操作word的POI

    2018-05-28 16:13:23
    java操作word的POI,java操作word的POIjava操作word的POIjava操作word的POIjava操作word的POIjava操作word的POI
  • java操作word文件工具类级dell文件,dell文件包含32位级64位文件
  • java操作word可操作书签,在word模板文档上设置书签,然后从数据库中查询数据,填充到word文档书签位置,刚拿到需求时,使劲在网上找资料。幻想第三方jar包,帮我实现。有Apatch的POI,java2word,jcob等,一直让我无法...
  • Java操作Word模板实现动态数据输出工具类
  • Java操作word模板读写

    2016-08-03 16:06:02
    Java读写 简单易懂,有完整的资历
  • java操作word书签

    2014-09-17 15:16:19
    java操作word 实现了三个功能:模板填充,模板数据提取,格式颜色验证,具体解压jar包WordTest实例,注意针对word2007以上,书签要对应
  • java 操作word

    2014-07-02 10:33:23
    java 操作word 如何用java调用word.exe的宏和其他功能? 继续上面的,现在发布一下我使用jacob调用word文件中的宏的代码。
  • java操作word,可以随意操作书签

    热门讨论 2013-07-18 17:01:35
    java操作word,可以随意操作,不使用poi,java2word等第三方
  • JACOB Java操作word 优秀

    2019-01-08 18:48:13
    java操作word 超简单实用:第一步: 引入包jacob.jar 第二步:参考工具类MsWordTool.java 含概基本WORD 所有操作方法 【特别难点】解决实例: 1)word书签内容替换后,书签会丢失问题 2)word定点批量插入图片...
  • Java操作Word文档

    千次阅读 2021-10-21 20:18:52
    Java 生成 Word 的几种方案 参考 ​ 主要有这么一些工具可以使用 Jacob、Apache POI、Java2word、iText,还有一种方法是使用XML作为模板。 ​ 使用 XML 的思路:先用 office 编辑好word的样式,然后另存为xml,将...

    Java 生成 Word 的几种方案

    参考

    ​ 主要有这么一些工具可以使用 Jacob、Apache POI、Java2word、iText,还有一种方法是使用XML作为模板。

    ​ 使用 XML 的思路:先用 office 编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析 FreeMarker模板 并输出 Word 文档。经测试这样方式生成的word文档完全符合 office 标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。 ===> 参考

    image-20211021162828629

    • Jacob 和 Java2word需要服务器端支持 office,相对麻烦。
    • Apache POI 功能较少。===> 参考

    ​ 这里推荐一个刚刚发现的产品,由成都冰蓝科技开发的产品 Spire,可以用于操作各种文档,目前我只体验过 Spire.Doc for Java,个人认为使用简单,功能强大,对样式的支持非常好(虽然Spire主要面向企业提供产品,但是也提供了免费使用的产品)。

    使用 Spire.Doc 替换 Word 模板中占位符

    这里使用 Maven 下载 Spire.Doc 也可以直接下载 jar 包 ==> 参考

    1️⃣:首先引入 Maven 依赖

    ​ 在 Maven 的官方仓库或者阿里云镜像仓库中是没有 Spire 依赖的,所以需要配置 Spire 自己的一个仓库源。

    <repositories>
    	<repository>
            <id>com.e-iceblue</id>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    	</repository>
    </repositories>
    

    ​ 以下就是 Spire.Doc for Java 的依赖

    <!--spire.doc 操作word文档-->
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc.free</artifactId>
        <version>3.9.0</version>
    </dependency>
    

    2️⃣:设计一个Word模板,此文档中存在占位符

    image-20211021172656642

    3️⃣:编码

    public class TestSpireWord {
    
        @Test
        public void generateAndReplaceText() {
            Document doc = new Document();
            doc.loadFromFile("F:\\yourlocation\\template.docx", FileFormat.Docx);
    
            Map<String, String> map = new HashMap<>();
            map.put("${name}", "张山");
            map.put("${birthday}", "2021-10-18");
            map.put("${result}", "成功");
            map.put("${col}", "第一列");
            map.put("${col1}", "第二列");
            map.put("${col2}", "第三列");
            replaceSpecialWord(doc, map);
            // 保存为文件
            doc.saveToFile("F:\\yourlocation\\result.docx",FileFormat.Docx);
            // 或者保存至输出流中
            //ByteArrayOutputStream os = new ByteArrayOutputStream();
            //doc.saveToStream(os, FileFormat.Docx);
        }
    
        /**
         * 替换Word文件中 ${} 标识的特殊字符
         * <br>
         * <strong>注意:如果存在部分特殊表示无法替换,请尝试将 ${} 的整个字符串复制到word中,有可能word没有将${}识别为一个整体</strong>
         * @param doc: Sprire Document
         * @param map: 占位符${} 与 需要替换的为字符串的对应关系
         */
        public void replaceSpecialWord(Document doc, Map<String, String> map) {
            // 正则表达式,匹配所有的占位符 ${}
            Pattern pattern = Pattern.compile("\\$\\{.*?}");
            // 根据正则表达式获取所有文本
            TextSelection[] allPattern = doc.findAllPattern(pattern);
            // 逐个替换占位符
            for (TextSelection textSelection : allPattern) {
                String tmp = map.get(textSelection.getSelectedText());
                System.out.print(textSelection.getSelectedText());
                int res = doc.replace(textSelection.getSelectedText(), tmp, true, true);
                System.out.println(": " + res);
            }
        }
    }
    

    最终结果:

    // 控制台输出
    ${name}: 1
    ${birthday}: 1
    ${result}: 1
    ${col}: 1
    ${col1}: 1
    ${col2}: 1
    
    image-20211021173346574

    ​ 可以看到使用 Spire.Doc for Java 替换占位符十分简单,并且不会破坏模板的原有样 式。

    ​ 如果需要了解 Spire.Doc for Java 的更多操作,参考 ===> 官方文档

    📘 参考资料

    POI操作word模板并生成新的word–jianshu
    Spire.doc for Java—官方文档
    Spire.Doc for Java 资源—csdn
    通过 Maven 仓库安装 Spire 系列 Java 产品—官方文档

    展开全文
  • java操作word模板,动态替换标识内容

    热门讨论 2012-02-28 18:51:10
    在下载word模板.rtf过程中,将模板中约定的标识内容替换为需要的信息。省时省力很方便。
  • java2Word操作Word,比如插入图片和替换文本,压缩文件中有【lib和exe】文件夹和[java2Word]项目代码,网上都不完整,本人对其进行完全整合,新手解压后按readme.txt文件操作说明可以使用
  • JAVA操作WORD模板实现动态数据输出.pdf JAVA操作WORD模板实现动态数据输出.pdf
  • 大哥 还是大姐不要再删了 我要崩溃了 我上传的资源就是有关于javaja操作wordpdf图片生成图片水印的 一些相关资料而已
  • java操作word可操作书签.pdf
  • JAVA操作word Java 操作Microsoft Word 之jacob(1) Java 操作Microsoft Word 之jacob(1) JJaavvaa操操作作MMiiccrroossooffttWWoorrdd之之jjaaccoobb(11) 现在我们一起来看看用J1ava如何操作Microsoft Word jacob...
  • java操作word(内部资料).doc
  • 网络上的根据模板填充Word我都看过一些, 它们的功能在数据换行的时候用的是run对象的.addCarriageReturn()方法,或者是直接用\n实现换行。这些都不符合我的需求, 因为我要的是分段,而不是换行。换行的word导致另一...
  • java操作word(一)

    万次阅读 2018-05-15 10:51:03
    一、 需求背景 在做项目的过程中,经常会遇到要把数据库数据导出到Word文件中的需求,因为很多情况下,我们需要将数据导出到WORD中进行打印。此需求可以通过用程序填充数据到word模板中来实现。所谓模板也就是标记...

    一、 需求背景

      在做项目的过程中,经常会遇到要把数据库数据导出到Word文件中的需求,因为很多情况下,我们需要将数据导出到WORD中进行打印。此需求可以通过用程序填充数据到word模板中来实现。所谓模板也就是标记了数据位置的Word文件。模板可以简单的分为两种:一种模板包含了固定的、有限个数的数据位置,比如一个请假条的模板中只有“部门、姓名、原因、天数、日期”几个数据位置,也可能是这5个数据位置中的某4个、某3个或某1个,但模板中的标签数量总是这个集合的子集(如下图所示:);另一种是包含了循环数据的,比如要生成一个员工信息表,这个表格中有不定个数的员工信息,每个员工的信息都包含了“编号、部门、姓名、年龄、籍贯”。第一种模板导出word文件相对比较简单,在本文中先描述此方案的实现方法。

      

    二、 实现方法

      1. 编辑模板:模板中必须标记好数据要插入的位置,这样才可以实现用程序插入数据到文件的相应位置,就是说要想生成文件,数据的位置必须用某种元素来标记出来。使用PageOffice填充数据到word文件,需要用Word书签来标记要插入数据的位置。先在Word模板中标记好“部门、姓名、原因、天数、日期”几个数据位置:PO_Dept、PO_Name、PO_Cause、PO_Num、PO_Date,如下图所示:

      
      一般的开发人员使用Word比较少,可能不清楚Word书签是怎样插入的,下面简单的介绍一下插入书签的方法。
      第一种方法:把光标定位到需要标记数据位置的地方,点Word菜单中的“插入”-“书签”,就会弹出一个标题为“书签”的对话框(如下图所示),输入新书签的名称,注意:书签名必须以字母、汉字、中文标点等开头,可以包含数字但中间不能有空格(用PageOffice开发的时候不推荐使用中文命名书签名)。点右侧的“添加”按钮,新的书签名将出现在下面的列表中。
      

      第二种方法:选择几个文字、或一段文字、或者选择一段包含表格和图片的内容,为选中的内容指定书签的对象,然后执行第一种方法的同样操作,“插入”→“书签”……
    注意:如果新插入位置或新对象采用的是已有的书签名,原有的书签将自动取消。

      PageOffice示例代码中的模板在制作的时候,多采用第二中方法定义书签,插入书签之前会先写一个标示性的词语用中括号括起来,比如:[姓名],然后选中“[姓名]”,再插入书签。这样做的目的是便于在查看或编辑模板数据位置的时候一目了然。

      在使用PageOffice开发的过程中,为了避免出现与用户自己定义的书签出现冲突,要求插入的书签名称必须以“PO_”开头。注意是字母o,不是数字0。书签名是不区分大小写的也可以写成“po_”。在PageOffice的概念里提到的数据区域,本质上就是书签,但是只有“po_”开头的书签才叫数据区域,请注意这点。

      2. 编写代码调用PageOffice的接口填充数据到word文件中:

    复制代码
        // 声明变量存储从数据库中读取的数据    String  docName = "", docDept = "", docCause = "", docNum = "", docDate = "";    // 数据库数据读取操作(不同的数据库用不同的代码)    ResultSet rs = stmt.executeQuery("select * from leaveRecord where ID = " + id);    if (rs.next()) {        docName = rs.getString("Name");        docDept = rs.getString("Dept");        docCause = rs.getString("Cause");        docNum = rs.getString("Num");        docDate = rs.getString("SubmitTime");    }    rs.close();    //创建PageOffice的WordDocument对象,操作Word文件    WordDocument doc = new WordDocument();    doc.openDataRegion("PO_name").setValue(docName);    doc.openDataRegion("PO_dept").setValue(docDept);    doc.openDataRegion("PO_cause").setValue(docCause);    doc.openDataRegion("PO_num").setValue(docNum);    doc.openDataRegion("PO_date").setValue(docDate);    //创建PageOfficeCtrl对象打开文件    PageOfficeCtrl poCtrl1 = new PageOfficeCtrl(request);    poCtrl1.setServerPage(request.getContextPath()+"/poserver.zz"); //此行必须    //获取数据对象    poCtrl1.setWriter(doc);    // 打开文档    poCtrl1.webOpen("doc/template.doc", OpenModeType.docReadOnly, "Tom");
    复制代码

     

    三、 生成文件的效果

      

    四、 示例下载

      http://www.zhuozhengsoft.com/down4/Java/BigDemo/poword.rar,或者下载PageOffice for Java的开发包,查看开发包中的示例:三、5、请假条示例

    展开全文
  • java操作word的方法(总结)

    千次阅读 2018-01-14 00:32:45
    这篇博客是用来总结java操作word的方法,因为我有的一个项目即将要用到java来操作word,所以暂时写这篇博客来记录一下,而且我看了网上很多的资料都没有发现比较完善的有关java操作word的方法的总结,因此想写一篇...

      这篇博客是用来总结java操作word的方法,因为我有的一个项目即将要用到java来操作word,所以暂时写这篇博客来记录一下,而且我看了网上很多的资料都没有发现比较完善的有关java操作word的方法的总结,因此想写一篇博客来补充这个方面的不足。(由于本人经验尚且不足,这里没有对方法的实现原理进行探究)

      首先,总的来说,java操作word文档有三种:

        1)Apache POI - Java API To Access Microsoft Format Files(http://poi.apache.org/);全是通过java完成的,不需 要com组件支持;支持linux系统下开发。

        2)java2word 是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。不支持在linux下开发。

        3)web开发语言操作word的功能最好还是用第三方的控件, 看看这个SOAOFFICE,还可以使用js 写VBA呢。支持在linux下开发。

        4)jacob调用系统组件dll,通过这个com桥来操作com组件(windows的一种软件编程技术吧)。不支持在linux开发。

    一些注意事项
      1、jacob(java com bridge,java com桥)分为两个部分,jacob.jar,jacob.dll,使用时两个东西的版本要一致,而且还分32位和64位,它的位数和jdk的位数有关,与操作系统的位数无关。它的原理是通过java的jni功能,调用系统组件dll,通过这个com桥来操作com组件(windows的一种软件编程技术吧),最终完成对office文档的操作。

    展开全文
  • java中freemarker实现对word操作java中freemarker实现对word操作
  • 利用JSF框架,在NETBEANS6.1开发环境中,构建出了一个...以该系统为蓝本,具体给出了Java语言读取Word模板文件的实现方法;利用MySQL数据库中的数据填充Word模板动态输出数据的实现方法及JSP提供Word文件下载的基本方法等。
  • java操作word(内部资料).pdf
  • java操作word,自动填写word表格

    千次阅读 2018-09-26 06:51:25
    工作中常要填写各种word表格,其中内容有很多是重复的。于是想做一个工具,输入word文件所对应的xml格式文件,自动填写表格。 word其实可以转化成xml来处理,这一步可以手工用word把.doc格式文件另存为.xml格式。...
  • java操作word,可以随意操作书签-转

    千次阅读 2019-04-25 12:34:03
    java操作word,可以随意操作,不使用poi,java2word等第三方 https://download.csdn.net/download/tanyb520ld/5777845

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 143,171
精华内容 57,268
关键字:

java操作word

java 订阅
友情链接: dot.rar