精华内容
下载资源
问答
  • 目前来看,java导出word大致有6解决方案:  1:Jacob是Java-COMBridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。...
    • 目前来看,java导出word大致有6种解决方案:

      1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。DLL动态链接库的生成需要windows平台的支持。该方案只能在windows平台实现,是其局限性。

      2:Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。他的excel处理很强大,对于word还局限于读取,目前只能实现一些简单文件的操作,不能设置样式。

      3:Java2word是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。 这些服务包括: 打开文档、新建文档、查找文字、替换文字,插入文字、插入图片、插入表格,在书签处插入文字、插入图片、插入表格等。填充数据到表格中读取表格数据 ,1.1版增强的功能: 指定文本样式,指定表格样式。如此,则可动态排版word文档。是一种不错的解决方案。

      4:iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。功能强大。

      5:JSP输出样式,该方案实现简单,但是处理样式有点缺陷,简单的导出可以使用。

      6:用XML做就很简单了。Word从2003开始支持XML格式,大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。

    转载于:https://www.cnblogs.com/wangxiaocong/p/10145172.html

    展开全文
  • java导出word的5种方式

    万次阅读 多人点赞 2018-05-15 11:30:49
    总的来说,java导出word大致有5解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。通过Jacob实现了在Java平台上对微软Office的COM接口进行调用。  优点:调用微软Office...

    在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下。总的来说,java导出word大致有5种解决方案:

    1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。通过Jacob实现了在Java平台上对微软Office的COM接口进行调用。

      优点:调用微软Office的COM接口,生成的word文件格式规范。

      缺点:服务器只能是windows平台,不支持unix和linux,且服务器上必须安装微软Office。

    2:Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。

      优点:跨平台支持windows、unix和linux。

      缺点:相对与对word文件的处理来说,POI更适合excel处理,对于word实现一些简单文件的操作凑合,不能设置样式且生成的word文件格式不够规范。

    3:Java2word是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。 这些服务包括: 打开文档、新建文档、查找文字、替换文字,插入文字、插入图片、插入表格,在书签处插入文字、插入图片、插入表格等。

      优点:足够简单,操作起来要比FreeMarker简单的多。

      缺点:没有FreeMarker强大,不能够根据模版生成Word文档,word的文档的样式等信息都不能够很好的操作。

    4:FreeMarker生成word文档的功能是由XML+FreeMarker来实现的。先把word文件另存为xml,在xml文件中插入特殊的字符串占位符,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板,编码调用FreeMarker实现文本替换并输出Doc。

      优点:比Java2word功能强大,也是纯Java编程。

      缺点:生成的文件本质上是xml,不是真正的word文件格式,有很多常用的word格式无法处理或表现怪异,比如:超链、换行、乱码、部分生成的文件打不开等。

    5:PageOffice生成word文件。PageOffice封装了微软Office繁琐的vba接口,提供了简洁易用的Java编程对象,支持生成word文件,同时实现了在线编辑word文档和读取word文档内容。

      优点:跨平台支持windows、unix和linux,生成word文件格式标准,支持文本、图片、表格、字体、段落、颜色、超链、页眉等各种格式的操作,支持多word合并,无需处理并发,不耗费服务器资源,运行稳定。

      缺点:必须在客户端生成文件(可以不显示界面),不支持纯服务器端生成文件。

    综合以上资料的参考,和网上的一些意见,最后选择了,第5种用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");

    复制代码

      生成的文件效果:

      

    展开全文
  • 使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。DLL动态链接库的生成需要windows平台的支持。 2、 Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound ...

    1、 Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。DLL动态链接库的生成需要windows平台的支持。

    2、 Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。他的excel处理很强大,对于word还局限于读取,目前只能实现一些简单文件的操作,不能设置样式。

    3、 Java2word是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。
    这些服务包括: 打开文档、新建文档、查找文字、替换文字,插入文字、插入图片、插入表格,在书签处插入文字、插入图片、插入表格等。填充数据到表格中读取表格数据 ,1.1版增强的功能: 指定文本样式,指定表格样式。如此,则可动态排版word文档。

    4、 iText操作Excel还行。对于复杂的大量的word也是噩梦。用法很简单, 但是功能很少, 不能设置打印方向等问题。

    5、 JSP输出样式基本不达标,而且要打印出来就更是惨不忍睹。

    6、 用XML做就很简单了。Word从2003开始支持XML格式,大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc。经测试这样方式生成的word文档完全符合office标准,样式、内容控制非常便利,打印也不会变形,生成的文档和office中编辑文档完全一样。

    java生成pdf方案总结

    1. Jasper Report生成pdf:设计思路是先生成模板,然后得到数据,最后将两者整合得到结果。但是Jasper Report的问题在于,其生成模板的方式过于复杂,即使有IDE的帮助,我们还是需要对其中的众多规则有所了解才行,否则就会给调试带来极大的麻烦。

    2. openoffice生成pdf:openoffice是开源软件且能在windows和linux平台下运行。

    3. itext + flying saucer生成pdf:itext和flying saucer都是免费开源的,且与平台无关,结合css和velocity技术,可以很好的实现。

    一般使用第三种方案比较多,它实现的步骤是非常简单的。

    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • 总的来说,java导出word大致有5解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。通过Jacob实现了在Java平台上对微软Office的COM接口进行调用。  优点:调用微软Office...

    在网上找了好多天将数据库中信息导出到word中的解决方案,现在将这几天的总结分享一下。总的来说,java导出word大致有5种解决方案:

    1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。通过Jacob实现了在Java平台上对微软Office的COM接口进行调用。

      优点:调用微软Office的COM接口,生成的word文件格式规范。

      缺点:服务器只能是windows平台,不支持unix和linux,且服务器上必须安装微软Office。

    2:Apache POI包括一系列的API,它们可以操作基于MicroSoft OLE 2 Compound Document Format的各种格式文件,可以通过这些API在Java中读写Excel、Word等文件。

      优点:跨平台支持windows、unix和linux。

      缺点:相对与对word文件的处理来说,POI更适合excel处理,对于word实现一些简单文件的操作凑合,不能设置样式且生成的word文件格式不够规范。

    3:Java2word是一个在java程序中调用 MS Office Word 文档的组件(类库)。该组件提供了一组简单的接口,以便java程序调用他的服务操作Word 文档。 这些服务包括: 打开文档、新建文档、查找文字、替换文字,插入文字、插入图片、插入表格,在书签处插入文字、插入图片、插入表格等。

      优点:足够简单,操作起来要比FreeMarker简单的多。

      缺点:没有FreeMarker强大,不能够根据模版生成Word文档,word的文档的样式等信息都不能够很好的操作。

    4:FreeMarker生成word文档的功能是由XML+FreeMarker来实现的。先把word文件另存为xml,在xml文件中插入特殊的字符串占位符,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板,编码调用FreeMarker实现文本替换并输出Doc。

      优点:比Java2word功能强大,也是纯Java编程。

      缺点:生成的文件本质上是xml,不是真正的word文件格式,有很多常用的word格式无法处理或表现怪异,比如:超链、换行、乱码、部分生成的文件打不开等。

    5:PageOffice生成word文件。PageOffice封装了微软Office繁琐的vba接口,提供了简洁易用的Java编程对象,支持生成word文件,同时实现了在线编辑word文档和读取word文档内容。

      优点:跨平台支持windows、unix和linux,生成word文件格式标准,支持文本、图片、表格、字体、段落、颜色、超链、页眉等各种格式的操作,支持多word合并,无需处理并发,不耗费服务器资源,运行稳定。

      缺点:必须在客户端生成文件(可以不显示界面),不支持纯服务器端生成文件。

    综合以上资料的参考,和网上的一些意见,最后选择了,第5种用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");
    复制代码

      生成的文件效果:

      

     

    展开全文
  • java 导出word几种方法

    千次阅读 2018-07-30 12:01:48
    本文章概述了word导出几种方法,重点描述了自己使用过的,以及详细的例子,仅供大家参考,如内容中有不对的地方请大家谅解,并指出,我会及时改正,谢谢!!! 概述: 一、Jacob 是Java-COM Bridge的缩写,它在...
  • java导出word的6种方式

    2017-06-10 15:29:55
    目前来看,java导出word大致有6解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。...
  • Java导出Word文档的实现

    万次阅读 热门讨论 2020-10-18 16:17:13
    在日常的开发工作中,我们时常会遇到导出Word文档报表的需求,比如公司的财务报表、医院的患者统计报表、电商平台的销售报表等等。 导出Word方式多种多样,通常有以下几种方式: 1. 使用第三方Java工具类库Hutool...
  • 首先介绍几种java导出word方案 1、Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。DLL动态链接库的...
  • 最近做的项目,需要将一些信息导出到word中。...目前来看,java导出word大致有6解决方案:  1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态
  • java导出word的6种方式(转发) 来自:http://www.cnblogs.com/lcngu/p/5247179.html 最近做的项目,需要将一些信息导出到word中。在网上找了好多解决方案,现在将这天的总结分享一下。 目前来看...
  • [原创]java导出word的5种方式

    千次阅读 2018-05-03 15:40:00
    总的来说,java导出word大致有5解决方案: 1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。通过Jacob实现了在Java平台上对微软Office的COM接口进行调用。  优点:调用微软Office...
  • java 导出word几种方法总结

    千次阅读 2015-01-29 11:32:57
    最近项目里要求从后台获取试题然后生成一张...以下是我用到几种导出word的方法。 1.利用freemark模版生成  如果不是从数据库取出的数据本身带html格式的话,这种方法是比较推荐的,适用生成格式比较复杂的情况。先
  • 最近做的项目,需要将一些信息导出到word中。...目前来看,java导出word大致有6解决方案: 1:Jacob是Java-COMBridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链...
  • 利用Java生成word文档

    2021-08-10 14:13:11
    利用java生成word文档种方式第一种第二种开始上手:第二种第一步:导包(要导入4.0.1的包,笔者之前导入3.8,3.9的包在进行表格插入图片有bug)第二步:创建文档对象第三步:创建word文档输出流对象第四步:创建...
  • 目前java导出word的6解决方案

    万次阅读 2017-09-12 10:53:08
    最近做的项目,需要将一些信息导出到word中。...目前来看,java导出word大致有6解决方案:  1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链
  • java根据word模板导出word文件

    千次阅读 2020-10-27 15:08:03
    前言:java导出word有很多方式,这里介绍最简单的一,利用freemark模板导出word文档。 说明:这里用导出一个list列表数据到word文档来举例 首先导入freeamark依赖,版本号最好不要太低,在maven依赖官网找使用...
  • java导出生成word

    2018-02-01 13:22:05
    目前来看,java导出word大致有6解决方案:  1:Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,696
精华内容 14,278
关键字:

java生成word文档的几种方式

java 订阅