`
zqb666kkk
  • 浏览: 730266 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

java word导出

    博客分类:
  • java
阅读更多
需要导出的word文档是事先准备好的一个模板,文档数据所在的位置则必须按FreeMarker模板语法的占位符(如:${xxx})填充,然后将word文档保存(最好另存为,原模板也最后保留,便于以后修改)为xml格式的文件,然后使用文本编辑器打开检查并修改不合法或书写更好的FreeMarker语法。最后在后台服务端使用FreeMarker相关的包和类读取模板,返回模板所需的数据变量,输出word文件即可。
导出word功能示例

1、创建word模板

先创建你需要导出具体格式和样式的模板,数据用FreeMarker语法的占位符占据word模板
2、另存并编辑xml文件

创建好word模板之后,需要将word另存为xml格式的文件,这样易于查看和编辑为符合FreeMarker模板语法的xml文件,保证导出word数据的准确性,具体FreeMaker语法网上有很多,这里就不细说了。
import freemarker.template.Configuration;  
import freemarker.template.Template;  
import java.io.File;  
import java.io.IOException;  
import java.io.Writer;  
import java.util.Map;

/**
 * 
 */
public class WordUtil {

    private Configuration configuration = null;

    /**
     * 构造方法
     */
    public WordUtil() {
        try {
            configuration = new Configuration();
            configuration.setDefaultEncoding("UTF-8");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 根据类路径获取模板
     * @param templatePath
     * @param templateName
     * @return
     * @throws IOException
     */
    private Template getTemplate(String templatePath, String templateName) throws IOException {
        configuration.setDirectoryForTemplateLoading(new File(templatePath));
        Template t = configuration.getTemplate(templateName);
        t.setEncoding("UTF-8");
        return t;
    }

    /**
     * 生成word文档
     * @param templatePath
     * @param templateName
     * @param dataMap
     * @param out
     */
    public void write(String templatePath, String templateName,
        Map<String, Object> dataMap, Writer out) {
        try {
            Template t = getTemplate(templatePath, templateName);
            t.process(dataMap, out);
            out.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
    }

}



import com.blinkfox.util.WordUtil;  
import com.jfinal.kit.PathKit;  
import java.io.FileOutputStream;  
import java.io.OutputStreamWriter;  
import java.io.Writer;  
import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;

/**
 * Created by 
 */
public class ExportWordTest {

    /**
     * 构造测试数据
     * @return
     */
    public static Map<String, Object> createDatas() {
        Map<String, Object> testMap = new HashMap<String, Object>();
//      构造散数据
        testMap.put("author", "浙江火焰");
        testMap.put("date", "2015-11-20");

//      构造列表循环数据存放在ArrayList集合中
        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
        for (int i = 0; i < 5; i++) {
            Map<String, String> map = new HashMap<String, String>();
            map.put("xh", (i + 1) + "");
            map.put("name", "张三" + i);
            map.put("phone", "1381111222" + i);
            list.add(map);
        }
        testMap.put("datas", list);

        return testMap;
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        Map<String, Object> testMap = createDatas();
        WordUtil handler = new WordUtil();
        Writer out = null;
        try {
//          生成test.doc的word文件到某文件路径下
            FileOutputStream fos = new FileOutputStream("/home/blinkfox/文档/test.doc");
            out = new OutputStreamWriter(fos, "UTF-8");
            String templatePath = PathKit.getRootClassPath() + "/template/";
            handler.write(templatePath, "test.xml", testMap, out);
            System.out.println("导出成功!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}


0
2
分享到:
评论
1 楼 18335864773 2019-03-01  
推荐用pageoffice组件打开文档,pageoffice 可以实现在线打开文档,然后另存到客户端电脑。效果和本地office 的效果一样。不需要xml。

相关推荐

    java word导出功能实现

    在Java编程环境中,导出Word文档是一项常见的任务,特别...以上就是使用Java和Apache POI实现Word导出功能的基本步骤和关键知识点。通过熟练掌握这些技巧,你可以轻松地创建符合模板格式的Word文档,满足各种业务需求。

    JAVA 导出WORD

    标签中的"java导出word文档"、"jacob word导出"和"word导出图"暗示了这个项目可能还涵盖了在Word文档中插入图片的功能。使用Jacob,可以调用Word的API来插入图片,如下所示: ```java // 获取当前活动文档的Body...

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

    在Java应用中,使用FreeMarker导出Word文档可以提供灵活的文本和数据结合的方式,尤其适用于生成报告、合同等复杂格式的文档。本篇将详细介绍如何使用FreeMarker与Java结合来导出包含多张图片的Word文档。 1. **...

    java导出Word修改后缀名

    java导出文件, freemarker导出word需要ftl文件,java导出Word常见问题。2.TXT修改后缀名为.ftl

    Java导出Word文档的实现.docx

    在Java开发中,导出Word文档是一项常见的任务,尤其在生成报表、报告或者合同等场合。本文将探讨如何使用Java高效地实现Word文档导出,主要聚焦于利用XDocReport和FreeMarker模板引擎的方式。 首先,Java中导出Word...

    java word 导出

    Java Word 导出技术主要涉及的是在Java环境中创建和处理Microsoft Word文档的能力。这通常通过使用第三方库,如Apache POI或iText等来实现。...通过分析这些文件,你可以更深入地理解Java Word导出的具体实现方式。

    java数据源导出WORD文档(包括图片、表格及文本)

    最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...

    word导出工具(java)

    java的word导出工具类,支持2007版word的模板导出,可导出文字、图片等

    java word 导出功能

    在Java编程环境中,实现Word文档的导出功能是一项常见的需求,尤其在企业级应用中,如报表生成、数据导出等。本篇文章将详细讲解如何使用Java来创建和导出Word文档,同时会涉及到如何在Word中添加图表,即`chart`的...

    java导出word使用freemarker模板map数据导出word带图片

    java导出word使用freemarker模板map数据导出word带图片 可以循环map 中list。 调用的2种方法在博客 https://blog.csdn.net/yjflinchong/article/details/122614203

    用java实现word统计报表和图形统计的导出

    在给定的标题“用java实现word统计报表和图形统计的导出”中,我们可以理解到这个项目或教程旨在教我们如何使用Java来创建包含统计报表和图形的Microsoft Word文档。这通常涉及到两个关键领域:文本处理和数据可视化...

    java导出word的插件

    Java导出Word的插件是一种在Java应用程序中用于创建、编辑和导出Microsoft Word文档的工具。这种插件使得开发者能够方便地在Java环境中处理Word文档,而无需直接使用Microsoft Office套件。以下是对这个主题的详细...

    Java使用poi做Word导出

    本篇文章将深入探讨如何使用Apache POI在Java中创建和导出Word文档。 首先,我们需要在项目中引入Apache POI库。`pom.xml`文件中的依赖配置通常是这样的: ```xml &lt;groupId&gt;org.apache.poi &lt;artifactId&gt;poi ...

    Java导出Word文件

    在Java编程环境中,导出Word文件是一项常见的任务,特别是在企业级应用中,如报表生成、文档自动化等场景。本文将详细讲解如何使用Java实现Word文件的导出,并结合提供的资源进行解析。 首先,Java导出Word文件通常...

    java poi导出word

    在"java poi导出word"这个场景中,我们主要关注的是如何使用Java POI来创建和编辑Word文档。下面将详细介绍如何利用Java POI实现这些功能,并提供一些关键知识点。 1. 文字与段落: 在Java POI中,我们可以使用...

    java工程导出word文件的实例

    在Java编程环境中,导出Word文件是一项常见的任务,特别是在企业级应用中,如报告生成、数据导出等。本实例将介绍如何使用Java来创建和导出Word文档,以满足这些需求。 首先,我们需要了解Java中用于处理Word文档的...

    java导出图片到word文档

    在Java编程中,将图片导出到Word文档是一项常见的任务,尤其在自动化报告生成或数据可视化等场景下。本文将详细介绍如何使用Java实现这一功能,包括必要的库、步骤以及可能出现的问题。 首先,我们需要一个能够处理...

    java导出word并插入图片

    在Java编程环境中,导出Word文档并插入图片是一项常见的任务,尤其在自动化报告生成、数据可视化或文档处理的场景中。下面将详细讲解如何使用Java实现这个功能。 首先,我们需要一个能够操作Word文档的库。Apache ...

    JAVA WORD中实现电子印章效果 文字浮于印章上面

    在JAVA中实现Word文档中的电子印章效果,可以让文档看起来更加正式和权威,尤其适用于法律、合同等场景。这个过程涉及到的主要技术包括Java编程语言、Apache POI库以及可能的图像处理技术。Apache POI是一个流行的...

    java导出word文档,固定模板

    Java 导出Word文档是一项常见的任务,特别是在企业级应用中,比如报告生成、合同模板等。本教程将重点介绍如何利用Freemarker技术实现这一功能,特别是如何将Word模板转化为可编程填充的数据模板。 首先,让我们...

Global site tag (gtag.js) - Google Analytics