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

利用模板导出word文档

 
阅读更多
最近研究了一下用freemarker导出word的例子,记录一下方便大家学习,利用模板的好处是可以控制word的样式。

1.将处理好的的word模板,另存为xml格式的文档。并在其中添加参数:  ${export}
2.2.将xml文档修改完成后,保存并修改后缀名为“*.ftl”;
3.编写java类实现赋值和处理流(抱歉代码没有写注释)
public class TempltUtil {

	public static final String WORD_TEMPLATE = "/test.ftl"; 
	public static final String TEMPLATE_PATH = "/vm"; 
	public static final String PREVIEW_DOC = "/pr.doc"; 

	    public static Template configTemplate(HttpServletRequest request, String temp) throws IOException { 
	    Configuration config = new Configuration(); 
	    ServletContext sc = request.getSession().getServletContext(); 
	    config.setDirectoryForTemplateLoading(new File(sc.getRealPath(TEMPLATE_PATH))); 
	    config.setObjectWrapper(new DefaultObjectWrapper()); 
	    Template template = config.getTemplate(temp, "UTF-8"); 
	    return template; 
	    } 

	    public static void toPreview(HttpServletRequest request, String temp, Map<?, ?> root){ 
	        try { 
	        String previewPath = request.getSession().getServletContext().getRealPath("")+PREVIEW_DOC; 
	        Template template = configTemplate(request, temp); 
	        FileOutputStream fos = new FileOutputStream(previewPath); 
	        Writer out = new OutputStreamWriter(fos, "UTF-8"); 
	            template.process(root, out); 
	            out.flush(); 
	            out.close(); 
	        } catch (Exception e) { 
	        e.printStackTrace(); 
	        } 
	    } 
}


4.填充数据
 private boolean getData(HttpServletResponse response,HttpServletRequest request,Map dataMap) {  
    	  
        dataMap.put("title_name", "用户信息");  
    
        dataMap.put("user_name", "张三");  
    
        dataMap.put("org_name", "xx公司");  
    
        dataMap.put("dept_name", "事业部");
        TempltUtil.toPreview(request, TempltUtil.WORD_TEMPLATE, dataMap); 
        return true;
    
     }  


5.前台调用的导出方法
 @RequestMapping(value="exportWord")
    public void excWord(HttpServletResponse response,HttpServletRequest request) throws IOException{

			
    	try { 
    		Map dataMap = new HashMap(); 
    		if (getData(response,request,dataMap)) { 
    		File previewFile = new File(request.getSession().getServletContext().getRealPath(TempltUtil.PREVIEW_DOC)); 
    		InputStream is = new FileInputStream(previewFile); 
    		response.reset(); 
    		response.setContentType("application/vnd.ms-word;charset=UTF-8"); 
    		response.addHeader("Content-Disposition","attachment; filename=\"" + TempltUtil.PREVIEW_DOC + "\""); 
    		byte[] b = new byte[1024]; 
    		int len; 
    		while ((len=is.read(b)) >0) { 
    		response.getOutputStream().write(b,0,len); 
    		} 
    		is.close(); 
    		response.getOutputStream().flush(); 
    		response.getOutputStream().close(); 
    		} 
    		} catch (Exception e) { 
    		e.printStackTrace(); 
    		} 
    }
分享到:
评论

相关推荐

    asp.net 利用word模板导出word文件

    在给定的场景中,"asp.net 利用word模板导出word文件"涉及到的关键技术是OpenXML。 OpenXML是一种标准的文件格式,由Microsoft开发,用于存储Office文档,包括Word(.docx)、Excel(.xlsx)和PowerPoint(.pptx)...

    c#模板导出word文档

    在C#编程环境中,利用Aspose.Words库可以方便地实现根据预设模板导出Word文档的功能。Aspose.Words是一款强大的文档处理组件,它允许开发者在不依赖Microsoft Office的情况下,进行Word文档的创建、编辑、格式化以及...

    根据word模板导出word、PDF文档

    根据word模板导出word、PDF文档,功能全,内容多,介绍详细。主要实现根据word模板及模板中的坐标($[标明.字段名])的形式进行查询出所对应的数据,然后分别生成PDF 和 WORD功能。 本功能是将各个模板的数据均查询...

    若依使用easypoi导出word文档.docx

    在本场景中,我们将探讨如何使用Easypoi库来实现导出Word文档的功能。Easypoi是一个强大的Java办公组件,能够方便地处理Excel和Word文档,尤其适合于数据批量导入导出和模板生成。 首先,我们需要在项目的`pom.xml`...

    pdm导出word模板(附使用说明)

    标题"pdm导出word模板(附使用说明)"表明这是一个关于如何从PDM系统中导出Word模板的教程,并且包含了一份使用说明,帮助用户理解和操作这个过程。下面将详细解释PDM系统中导出Word模板的相关知识点: 1. **PDM...

    Apifox导出word版接口文档-模板

    Apifox导出Word版接口文档模板知识点 Apifox是一款功能强大且灵活的API设计和文档管理工具,支持多种格式的导出,包括Word版接口文档。在这个模板中,我们可以看到一个基本的Word版接口文档结构,包括标题、描述、...

    POI使用word模板文件循环输出行并导出word

    在这个例子中,我们将探讨如何使用POI库来处理Word文档,特别是利用模板文件循环输出表格行并导出新的Word文档。这个过程在数据分析、报告生成或自动化文档制作等场景中非常有用。 首先,我们需要理解Word文档的...

    Java项目中利用Freemarker模板引擎导出--生成Word文档

    就可以通过现有信息导出Word文档。基于Java语言来导出Word文档的方式也有很多种,如Jacob,Apache POI,Freemarker,PageOffice,java2word 等等。。。。 在这里将通过Freemarker这个模板引擎来实现导出 Word,项目...

    php导出word文档(支持样式导出)

    总的来说,PHP导出Word文档并保持样式,虽然涉及一些复杂性,但通过使用如PHPOffice/PHPWord这样的库,可以简化这个过程。开发者需要对HTML、CSS、PHP以及可能的第三方库有深入的理解,才能有效地实现这一功能。在...

    java根据word模板导出Word文件,插入图片表格都可以

    网络上的根据模板填充Word我都看过一些, 它们的功能在数据换行的时候用的是run对象的.addCarriageReturn()方法,或者是直接用\n实现换行。这些都不符合我的需求, 因为我要的是分段,而不是换行。换行的word导致另一...

    利用模板导出word

    "利用模板导出word"这一主题涉及到的是自动化生成Word文档的技术,主要使用了Freemarker这一强大的模板语言。Freemarker是一个开源的Java库,主要用于生成动态HTML、XML、Word文档等,尤其适合于Web应用程序中的视图...

    模板导出word文件

    "模板导出word文件"这个主题涉及到两种主要的技术方法:将Word模板转换为HTML文件,以及使用第三方组件Aspose.Words来操作Word模板。 首先,将Word模板转换为HTML文件是一种灵活的方法,尤其适用于网页或者在线文档...

    asp 利用word模板生成word

    本文将详细解析如何通过C#代码利用Word模板(具体为word.dot)来生成Word文档,并采用书签替换的方式填充文档中的特定字段。 ### 一、原理介绍 #### 1. Word模板(word.dot) Word模板是一种预设格式和样式的文档...

    .net导出word也包括按模板导出

    总之,.NET框架结合Microsoft Office Interop库,提供了强大的能力来处理Word文档的生成,使得开发者能够方便地按模板导出Word,提高了工作效率。然而,需要注意的是,Interop库依赖于本地安装的Office,因此在无...

    C# MVC根据Word模板导出Word

    在C# MVC框架中,根据Word模板导出Word文档是一项常见的需求,特别是在企业级应用中,用于批量生成报告、合同等。本功能的实现主要涉及三个核心部分:模板处理、数据填充以及文件导出。以下将详细介绍这些部分,并...

    c#模板导出word

    在C#中,模板导出Word文档是一项常见的任务,它允许开发者根据预先定义的模板生成自定义的Word报告或者文档。这个过程通常涉及到文本替换、数据绑定以及格式化等操作。下面将详细探讨这一领域的知识。 1. **模板...

    PowerDesigner导出word模板

    通过调整.rtp文件,你可以控制最终Word文档的生成方式,比如是否包含实体关系图、表的详细信息、索引等。 使用PowerDesigner导出的Word模板,可以极大地提高工作效率,减少手动排版的工作量。对于团队协作和项目...

    freemarker模板导出word循环图片表格源码和详细教程

    在本教程中,我们将探讨如何利用Freemarker模板来导出Word文档,并实现循环插入图片和表格的功能。这对于需要批量生成定制化报告或者文档的应用场景非常有用。 首先,我们需要了解Freemarker的基本语法。在...

    NET Core通过预设的html模板,导出Word文件,Html文件,Pdf文件

    使用C# NET Core技术,通过预设的html模板,导出Word文件,Html文件,Pdf,使用说明参考https://blog.csdn.net/qq_27337291/article/details/120676751?spm=1001.2014.3001.5501

Global site tag (gtag.js) - Google Analytics