`
18335864773
  • 浏览: 22290 次
文章分类
社区版块
存档分类
最新评论

[转载]java操作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(包含书签插值)

    Java作为一种广泛使用的编程语言,提供了多种库来操作Word文档,实现自动化填充模板,例如书签插值,这在合同制作中非常有用。本文将详细讲解如何使用Java操作Word,特别是针对书签插值的方法,以及相关的技术和工具...

    java操作word可操作书签

    Java 操作 Word 文档,尤其是处理书签,是一种常见的需求,尤其在自动化报告生成或文档模板填充场景中。本文将详细介绍如何使用 Java 实现这一功能,避免依赖第三方库,如 Apache POI、java2word 或 jcob。 首先,...

    java操作word书签

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

    Java 操作Excel和Word的所有资料

    Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word的所有资料Java 操作Excel和Word...

    java2word程序代码及jar包

    Java2Word是一个Java库,它允许开发者通过编程方式创建和操作Microsoft Word文档。这个压缩包包含的就是使用Java2Word生成Word文档所需的代码示例和必要的jar包。在Java开发中,这种功能通常用于自动化报告生成、...

    java操作word xml dll文件

    在Java编程环境中,操作Word、XML以及DLL文件涉及多个技术和库。下面将详细阐述这些方面的知识。 1. **Java操作Word文件**: - **Apache POI**:这是最常用的Java库,用于读写Microsoft Office格式的文件,包括...

    JACOB Java操作word 优秀

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

    Java读取Word文档页数

    总结来说,Java读取Word文档页数可以通过两种主要途径:一是直接使用Jacob库操作Word文档;二是先将Word转换为PDF,再使用iTextPDF库读取PDF的页数。这两种方法各有优劣,应根据具体项目需求和环境选择合适的方法。

    Java操作Word模板实现动态数据输出

    ### Java操作Word模板实现动态数据输出 #### 一、引言 随着信息技术的发展,特别是数据库技术和网络技术的进步,许多企事业单位对于内部数据管理和外部信息发布的方式也在不断演变。当前,大多数单位倾向于将数据...

    java操作word需要的jar和dll文件

    在这个场景下,"java操作word需要的jar和dll文件"指的是Java Advanced COM Bridge (JACOB) 库,这是一个Java到COM桥接库,允许Java代码直接调用COM组件,如Microsoft Word。 JACOB库的核心组成部分包括两个文件:`...

    java替换word中的变量

    在Java编程环境中,替换Word文档中的变量是一项常见的需求,特别是在自动化文档生成或者模板处理的场景中。本知识点将深入探讨如何使用Java实现这一功能,主要涉及的库是Apache POI,这是一个广泛使用的开源库,用于...

    java操作word模板,动态替换标识内容

    在下载word模板.rtf过程中,将模板中约定的标识内容替换为需要的信息。省时省力很方便。

    java poi操作word模版文件生成表单和修改

    Java POI 是一个开源库,专门用于处理Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)等。在Java应用中,它被广泛用于读取、创建、更新和修改这些文件。在这个场景中,我们将重点讨论如何...

    java读取Word文档依赖jar包

    在Java编程环境中,读取和操作Microsoft Word文档通常需要依赖外部库,Apache POI就是其中最常用的一个。Apache POI是一个开源项目,它允许开发者使用Java处理Microsoft Office格式的文件,包括Word(.doc和.docx)...

    java对word操作

    Java对Word的操作主要涉及到使用Java库来读取、修改、创建和处理Microsoft Word文档。在Java编程中,我们可以借助第三方库如Apache POI、JODConverter或者OpenOffice API来实现这些功能。Apache POI是最常用的一个,...

    JAVA 导出WORD

    这个项目可能包括了构建文件(如pom.xml)、源代码文件(如JavaWord.java)以及其他必要的配置。 标签中的"java导出word文档"、"jacob word导出"和"word导出图"暗示了这个项目可能还涵盖了在Word文档中插入图片的...

    Java根据word 模板,生成自定义内容的word 文件

    Apache POI是一个流行的开源项目,它允许Java开发者读写Microsoft Office格式的文件,包括Word(.doc和.docx)文件。通过使用Apache POI,我们可以操作Word文档中的文本、样式、图片等各种元素。 接下来,我们要...

    java替换word占位符.zip

    接下来,我们编写一个简单的Java程序`WordTest.java`来演示如何使用Aspose.Words替换Word文档中的占位符。以下是一个基本示例: ```java import com.aspose.words.*; public class WordTest { public static void...

    java使用jacob和java2word工具类操作word

    本文提供关于jacob配置的dll文件,java2word的运行安装文件,jacob和java2word整合jar包 ckedtior网页编辑器需要用的jar,以及使用整合后的jar对word进行插入图片、带格式文字段落、和导出word功能源码

Global site tag (gtag.js) - Google Analytics