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

[转载]Java动态填充word文档并上传到服务器

阅读更多

一、 需求背景

  在一些特殊应用场合,客户希望在服务器上生成文档的同时并填充数据,客户端的页面不显示打开文档,但是服务器上生成文档对服务器压力很大,目前服务器上生成文档第一种就是方式是jacob, 但是局限于windows平台,往往许多JAVA程序运行于其他操作系统,在此不讨论该方案。二是POI。 但是它的excel处理还凑合, word模块还局限于读取word的文本内容,写word文件的功能就更弱;还有一个要命的地方,处理doc格式和处理docx格式的类几乎完全不同,要分开针对不同的格式写不同的代码,这就意味着用户上传的docx格式文件如果使用了doc的扩展名,程序马上崩溃。而且个人认为poi结构混乱,编码比较复杂,开发过程非常消耗时间和精力。PageOffice提供了FileMakerCtrl组件,FileMakerCtrl是在客户端生成文档并上传到服务器,但是不会在Web网页里显示word文档,因此采用FileMakerCtrl生成word文件有两个优点:1. 在客户端生成word文档,不会对服务器造成任何压力;2. 生成的文档属于标准的word文档格式。

二、 核心代码

  1.制作模板,打开word模板文件,在文件中插入书签:PO_company、PO_year、PO_number,如下图所示:

  

  2. 动态填充word文档并上传到服务器

复制代码
    FileMakerCtrl fmCtrl = new FileMakerCtrl(request);
    //设置PageOffice的服务页面
    fmCtrl.setServerPage(request.getContextPath()+"/poserver.zz");    
    WordDocument doc = new WordDocument();
    //给数据区域赋值,即把数据填充到模板中相应的位置
    doc.openDataRegion("PO_company").setValue("北京某某软件有限公司  ");
    doc.openDataRegion("PO_year").setValue("2018");
    doc.openDataRegion("PO_number").setValue("008");
    fmCtrl.setWriter(doc);
    //设置用来接收生成的文档的action方法或RequestMapping方法
    fmCtrl.setSaveFilePage("/SaveFile"); 
    fmCtrl.fillDocument("doc/template.doc", DocumentOpenType.Word);
复制代码

  3. 编写SaveFilePage指向的action或RequestMapping方法的代码,接收客户端上传的文件流

    FileSaver fs = new FileSaver(request, response);
    String fileName = "myfile.doc" ;
    fs.saveToFile(request.getSession().getServletContext().getRealPath("/") +"/"+ fileName);
    fs.close();

  4. 生成的word文件效果。

  

三、 相关下载

  访问下面的地址下载PageOffice for Java 开发包,部署Samples4示例之后参考示例:二、13、FileMaker转换单个文档(以Word为例)

  http://www.zhuozhengsoft.com/dowm/

 

分享到:
评论

相关推荐

    JAVA用PageOffice动态导出Word文档

    JAVA 用 PageOffice 动态导出 Word 文档 本文档主要介绍了如何使用 PageOffice 在 JAVA 中动态导出 Word 文档,实现动态生成 Word 文档的功能。该功能可以应用于软件开发中,例如生成正式文件、报告、协议等。 ...

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

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

    java实现xml解析word文档代码实现

    使用 Java 可以实现 Word 文档的动态写入,例如,可以从数据库中查询数据,并将其填充到 Word 文档中的书签位置。 7. Java 代码实现 以下是使用 Java 实现 Word 文档解析和动态写入的代码实现: ```java public ...

    java 动态获取数据库信息生成word(含表格,柱状图),并下载.docx

    Java 动态生成 Word 文档(含表格、柱状图)并下载是指利用 Java 语言动态获取数据库信息,并将其生成为 Word 文档(含表格、柱状图),并提供下载功能。该功能主要应用于数据报表生成和下载,例如测试报告、统计...

    java、Android生成word文档,动态添加数据

    总的来说,通过Java和Android开发工具,结合Apache POI和Freemarker等库,我们可以实现动态生成Word文档并插入各种类型的数据,满足各种业务需求。这个过程涉及到文件操作、模板设计、数据绑定、异常处理等多个技术...

    JAVA不使用POI,用PageOffice动态导出Word文档[参考].pdf

    在Java软件开发中,生成Word文档是一项常见的任务,特别是在需要批量生成正式文件或者根据数据库数据动态填充内容的场景。然而,传统的Apache POI库虽然强大,但在处理复杂的Word格式和排版时可能会变得较为繁琐。...

    VUE动态生成word的实现

    6. 生成Word文档:在服务器端,我们可以使用诸如docxtemplater这样的库,根据接收到的表单数据填充预设的Word模板,从而生成Word文档。这个过程涉及到对Word文档格式的解析和内容的动态替换。 7. 下载Word文档:...

    javaword文档导出jar包freemarker.rar

    JavaWord文档导出jar包与Freemarker是一个用于在Java后端生成动态Word文档的解决方案。这个rar压缩包中包含的jar文件可以帮助开发者利用Freemarker模板语言将数据动态地填充到Word文档中,实现自动化文档生成。下面...

    PageOffice Java开发 实现Word文件的批量生成

    在IT行业中,尤其是在Java开发领域,批量生成Word文档是一项常见的需求,特别是在大数据处理、报告生成或自动化办公场景中。PageOffice是一款强大的Java组件,专为处理Office文档提供解决方案,包括创建、编辑、转换...

    Jacob根据模版动态生成word文档

    在Java Web环境中,这个功能可能被用作服务器端的报告生成器,接收前端请求,动态填充模板,然后返回生成的Word文档。这种方式在企业级应用中非常常见,比如生成合同、报告或者定制化的邮件。 总结来说,Jacob是一...

    java2word,java操作word

    这个工具使得开发者能够在服务器端或者没有Microsoft Office安装的环境中处理Word文档,极大地扩展了Java在文档处理方面的功能。下面将详细介绍Java2Word如何生成和修改Word文档,以及相关的一些知识点。 1. **Java...

    java使用jacob通过word模板生成word文档项目实例

    Java使用Jacob库通过Word模板生成Word文档是一种常见的技术实践,特别是在需要自定义生成大量结构化报告的场景下。本项目实例提供了一个完整的解决方案,可以直接在MyEclipse环境中运行。下面将详细讲解这个项目的...

    JAVA生成word文档代码加说明

    在Java编程环境中,生成Word文档是一项常见的任务,尤其在企业级应用中,如报告生成、自动化文档处理等。Apache POI库是Java中用于处理Microsoft Office格式文件(如Word、Excel)的一个强大工具。以下是对标题和...

    java调用PageOffice生成word

    总的来说,Java调用PageOffice生成Word是一种高效、灵活的方法,尤其适用于需要从数据库中动态获取数据并填充到文档的场景。通过熟练掌握PageOffice的使用,开发者可以提升企业级应用的文档处理能力,提高工作效率。

    freemarker根据word模板生成word的完整示例

    5. **保存文件**:最后,你需要保存生成的Word文档到本地或服务器上,这可以通过Java的文件操作API完成。 关于标签中的"freemarker",它强调了Freemarker作为模板引擎的角色;"模板"指的是用于生成Word文档的XML...

    springboot实现根据指定pdf、word模板文件填充值到文件里面,生成对应的文件

    在本项目中,我们关注的是如何利用Spring Boot来处理PDF和Word文档,特别是如何将数据填充到预定义的模板文件中,生成定制化的文件。这个过程通常涉及到两个主要的技术:Apache POI和iText。 Apache POI是用于处理...

    Java通过word编辑为xml和ftl格式的模板创建导出word文档 .zip

    这个压缩包“Java通过word编辑为xml和ftl格式的模板创建导出word文档 .zip”提供了一个示例项目,用于演示如何使用Java编程语言来操作Word文档,并将其内容转化为XML和FTL(FreeMarker)模板格式。以下将详细介绍这...

    java web项目无刷新导出word文档demo,使用freemarker模板引擎

    在这种模式下,用户触发导出操作后,前端发送异步请求到服务器,服务器处理请求并生成Word文档,然后将生成的文件作为响应返回,前端接收到响应后直接下载,整个过程不会刷新页面,提升了用户体验。 3. **Java Web...

    DocX类操作WORD文档——把图片插入到书签指定位置

    通过以上步骤,我们可以灵活地在Word文档中插入图片,并精确地定位到书签的位置。这在生成报告、模板填充等场景中非常有用。DocX库的使用使得这些操作变得简单易行,大大提高了开发效率。同时,由于不依赖于Office...

Global site tag (gtag.js) - Google Analytics