`
guojian19911218
  • 浏览: 2257 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

freemaker导出word

 
阅读更多

 

1.首先将word里面需要改的数据写成这种形式
2.另存为xml格式
3.方法如下
  /**
  * 导出word
  * @param ddid
  * @return
  * @throws Exception
  */
 @RequestMapping("/cbTongjiDuty/do_export.htm")
 public void doexport(HttpServletRequest request, HttpServletResponse response, ModelMap map, Long id) throws Exception {
  FreemarkerExecutor exe = new FreemarkerExecutor();
  exe.setClassForTemplateLoading("/config/template"); //文件路径
  exe.setTemplate("秦皇岛海事局VTS值班业务工作统计表.xml"); //文件名称
  CbTongjiDuty cbTongjiDuty=cbTongjiBaobiaoManager.doGet(CbTongjiDuty.class, id);
  String fname = "VTS值班业务工作统计表"+".doc"; //导出后的文件名称
  map.put("duty", cbTongjiDuty); //传值
  response.setContentType("application/octet-stream");
  response.setHeader("Content-Disposition", "attachment;filename="
    +  new String(fname.getBytes("gb2312"), "ISO8859-1"));
  Writer out = new BufferedWriter(new OutputStreamWriter(response.getOutputStream(), "UTF-8")); //Writer继承java.io包
  exe.process(map, out);
 }
4. FreemarkerExecutor 类如下 
package com.util;
 
import java.io.IOException;
import java.io.Writer;
import java.util.Map;
 
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
 
 
 
 
public class FreemarkerExecutor {
 
 private Configuration config;
 private Template template;
 
 public FreemarkerExecutor(){
  config = new Configuration();  
  config.setDefaultEncoding("utf-8");  
  config.setClassicCompatible(true);
 }
 
 /**
  * 设置模板存放目录
  * @param path
  */
 public void setClassForTemplateLoading(String path) {
  config.setClassForTemplateLoading(this.getClass(), path);
 }
 
 /**
  * 设置模板文件
  * @param fileName
  * @throws IOException
  */
 public void setTemplate(String fileName) throws IOException {
  template = config.getTemplate(fileName,"UTF-8");
  template.setOutputEncoding("UTF-8");
 }
 
 
 /**
  * 合并输出
  * @param data
  * @param out
  * @throws TemplateException
  * @throws IOException
  */
 public void process(Map<String, Object> data, Writer out) throws TemplateException, IOException {
  if (template == null) {
   throw new RuntimeException("please set the template");
  }
  template.process(data, out);
 
  out.flush();
  out.close();
 }
 
}
分享到:
评论

相关推荐

    java利用FreeMarker导出word

    Java利用FreeMarker导出Word是一项常见的技术需求,尤其在企业级应用中,常常需要将动态数据生成为Word文档,例如报告、合同等。FreeMarker是一个模板引擎,它能将Java对象的数据绑定到模板上,生成HTML、XML或者如...

    Freemarker导出word示例,包括jfreechart图表

    在本示例中,Freemarker被用于生成Word文档,实现数据与模板的结合,使得动态生成Word文档变得更加简单。 首先,让我们深入了解Freemarker的工作原理。Freemarker模板由纯文本组成,其中包含特定的控制结构,如`...

    java freemarker导出word -包含多张图片导出

    5. **生成Word文档** 使用Apache POI创建一个新的Word文档,并在其中添加FreeMarker模板。在模型中设置图片对象,然后使用FreeMarker的`Template`类将模板和模型合并,生成最终的Word文档内容。 6. **嵌入图片** ...

    freemarker 导出word表格

    总结,FreeMarker导出Word表格的核心在于理解XML结构,创建FreeMarker模板,以及正确地绑定数据。这个方法的好处是可以将格式设计与数据分离,使得数据的更新和格式的维护变得更加灵活和高效。在处理大量数据的导出...

    SpringBoot_Freemarker生成Word_多个表格+两层嵌套循环

    SpringBoot_Freemarker生成Word_多个表格+两层嵌套循环; 步骤说明: 1.用Microsoft Office Word打开word原件;将文档中需要动态生成的内容,替换为属性名 ${name} 2.另存为,选择保存类型Word 2003 XML 文档(*....

    Java 用Freemarker导出word文档总结

    在Java中利用FreeMarker导出Word文档,可以极大地提高代码的可维护性和灵活性。 首先,我们需要了解FreeMarker的基础知识。FreeMarker是一个基于模板的视图技术,它将数据模型和视图模板分离,使得开发者可以专注于...

    FreeMarker生成word文件

    以下是关于如何使用FreeMarker生成Word文件的一些关键知识点: 1. **FreeMarker模板语言**:FreeMarker使用一种简单的模板语言,允许开发者通过定义变量和控制结构(如循环和条件语句)来动态地插入数据。在模板中...

    java freemarker 导出 word

    以上就是使用Java FreeMarker导出Word文档的基本流程。实际应用中,你可能需要处理更复杂的模板,包括表格、列表、图片等,以及更丰富的数据模型。FreeMarker的强大之处在于它的灵活性,可以根据具体需求定制模板,...

    利用FreeMarker生成word文件例子

    在Java开发中,利用FreeMarker生成Word文件可以极大地提高效率,尤其在需要批量生成或者自定义模板的情况下。以下是对这个主题的详细阐述: ### FreeMarker简介 FreeMarker是一个开源的、基于模板的Java库,它将...

    用Freemarker生成word文档

    ### 使用Freemarker生成Word文档的关键技术点解析 #### 一、引言 在实际工作中,经常需要批量生成带有特定格式或数据填充的Word文档,如报表、合同、通知等。传统的手工创建方法效率低下且易出错。利用Java语言...

    java web+freemarker导出word

    java web+freemarker 导出word 单个字符串${name}, 列表&lt;#list tail as item&gt; ${item.id} ,附有源码,导出word的word模板 以及另存为的xml文件和 ftl模板,只需要改下里面的查询数据库即可

    freeMarker导出word两种方式最全代码样例.rar

    本示例主要探讨了使用FreeMarker导出Word的两种方法:通过生成XML模板和通过HTML模板直接导出。 1. **生成XML方式模板并附带图片导出** 在这种方法中,首先我们需要创建一个XML模板,该模板定义了Word文档的结构和...

    java利用freemarker生成word.pdf

    Java 利用 Freemarker 生成 Word.pdf,这个标题告诉我们,我们将使用 Java 语言和 Freemarker 库来生成 Word 文档,并将其导出为 PDF 文件。 描述解释 在描述中,我们可以看到,整个过程可以分为三步:首先,我们...

    FreeMarker导出Word,合并重复的单元格数据

    我代码里面的ftl文件

    生成WORD freemarker导出WORD

    本项目“生成WORD freemarker导出WORD”正是这样一个解决方案,它允许开发者使用FreeMarker模板来创建和导出Microsoft Word文件。 首先,我们要理解FreeMarker的工作原理。FreeMarker是一个基于Java的模板语言,它...

    java+Freemarker生成word

    Java结合Freemarker生成Word文档是一项常见的技术应用,主要用于动态生成具有复杂格式的报告或文档。在企业级应用中,这种技术尤其有用,因为它允许开发者根据数据库或其他数据源中的信息自动生成Word文档,无需手动...

    Java用freemarker导出word文档

    `Java用freemarker导出word文档`这个主题涉及到的技术点主要包括Java的Freemarker模板引擎和处理Word文档的相关库。Freemarker是一个强大的、基于模板的生成器,广泛用于Web应用中的动态HTML生成。在这里,它被用来...

    freemarker 导出word

    以上就是使用FreeMarker导出Word文档的关键步骤和涉及的技术点。在实际项目中,还需要考虑性能优化、错误处理、模板的复用和管理等方面的问题。通过熟练掌握这些知识点,你可以轻松地构建一个高效且灵活的Word文档...

    用freemarker生成word.zip

    在使用FreeMarker生成Word之前,需要准备一个数据模型,包含要插入到文档中的文本和图片。图片可以作为`byte[]`数组存储,例如: ```java Map, Object&gt; dataModel = new HashMap(); dataModel.put("title", ...

Global site tag (gtag.js) - Google Analytics