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

java生成word模板详解

    博客分类:
  • java
 
阅读更多

在做j2ee系统的时候,经常会遇到按照模板生成word文件,那么,我下面将详细的方法记录下来,以便于大家查看

  • 首先,我们要想将包导入我们的项目
freemarker.jar
  • 对于一个模板我们需要两个很重要的文件(.doc文件与.ftl文件)

.doc文件就是我们模板的一个样例文件

.ftl文件生成方法是这样:将.doc文件里面想要被自动填入的位置写上相对应的字段名称(也就是key)然后将这个.doc文件另存为.xml文件,之后对这个字段进行处理,处理方法是用${}把这个字段名包裹起来比如说${xm!},这里就会把你传过来的key为xm的值放到里面(后面的!是判断是后传过来的为空,如果是空就放空字符串)例子如下

          <w:p w:rsidR="00CA42DD" w:rsidRPr="008E29E5" w:rsidRDefault="00500E61" w:rsidP="00DB4832">
            <w:pPr>
              <w:spacing w:line="360" w:lineRule="auto" />
              <w:rPr>
                <w:rFonts w:ascii="仿宋_GB2312" w:eastAsia="仿宋_GB2312" w:hAnsi="宋体" />
                <w:sz w:val="28" />
              </w:rPr>
            </w:pPr>
            <w:r w:rsidRPr="00500E61">
              <w:rPr>
                <w:rFonts w:ascii="仿宋_GB2312" w:eastAsia="仿宋_GB2312" w:hAnsi="宋体" />
                <w:color w:val="FF0000" />
                <w:sz w:val="28" />
              </w:rPr>
              <w:t>${organization!}</w:t>
            </w:r>
            <w:r w:rsidR="00CA42DD" w:rsidRPr="008E29E5">
              <w:rPr>
                <w:rFonts w:ascii="仿宋_GB2312" w:eastAsia="仿宋_GB2312" w:hAnsi="宋体" w:hint="eastAsia" />
                <w:sz w:val="28" />
              </w:rPr>
              <w:t>:</w:t>
            </w:r>
          </w:p>
<!--列表数据-->
<#list ryList as ry>
${ry.xm!}
</#list> 

最后将这个.xml文件的后缀名改成.ftl即可

  • 然后我们调用freemarker的方法实现填充模板信息,下面我将我我们的实现方法给大家展示出来,大家根据自己的需求可进行相对应的更改

 

public void outputFile(ServletContext servletContext ,String templateFileDirectoryPath,String templateFileName,String outputFilePath,HashMap<String, Object> templateDatas){
		Configuration configuration = new Configuration();
		configuration.setDefaultEncoding("UTF-8");
		configuration.setServletContextForTemplateLoading(servletContext, templateFileDirectoryPath);
		try {
			Template template = configuration.getTemplate(templateFileName);
			template.setEncoding("UTF-8");
			File outFlie = new File(outputFilePath);
			try {
				FileOutputStream fileOutputStream = new FileOutputStream(outFlie);
				OutputStreamWriter outputStream;
				try {
					outputStream = new OutputStreamWriter(fileOutputStream, "UTF-8");
					Writer out = new BufferedWriter(outputStream);
					try {
						template.process(templateDatas, out);
					} catch (TemplateException e) {
						e.getMessage();
						log.error("模板数据绑定异常!");
					}
					out.flush();
				} catch (UnsupportedEncodingException e) {
					log.error("未找到指定编码格式");
				}
				
			} catch (FileNotFoundException e) {
				e.getMessage();
				log.error("未找到输出文件:"+outputFilePath);
			}
			
		} catch (IOException e) {
			e.getMessage();
			log.error("模板文件:"+templateFileDirectoryPath+templateFileName+"读取异常!");			
		}			
	}

 下面我对这五个参数获取方式进行一下解释:

1.servletContext:request.getSession().getServletContext();

2.templateFileDirectoryPath:存放模板的路径(一般情况下,.doc与.ftl存在同一个路径里面,这样比较方便找到,如:[res/files/foreignaffairs/goabroad/template/freemarker/])

3.templateFileName:模板文件名称(即.ftl的文件名称)

4.outputFilePath:新生成文件的路径

5.templateDatas:数据:通常情况下是Map<String,Object>类型

这样就大功告成了,炒鸡简单,附件中会给大家一个xml格式化软件,用起来就方便极了!!    :)

分享到:
评论

相关推荐

    java 根据word模板生成word 文档

    ### Java生成Word文档技术解析与实现 在现代企业级应用中,动态生成Word文档的需求日益增多,尤其是在报表生成、文档自动生成等领域。Java作为一种广泛使用的编程语言,提供了多种方法来根据Word模板生成Word文档,...

    Java 添加Word目录的2种方法示例代码详解

    Java 添加 Word 目录的 2 种方法示例代码详解 在本文中,我们将探讨 Java 中添加 Word 目录的两种方法。目录是一种能够快速、有效地帮助读者了解文档或书籍主要内容的方式。在 Word 中,插入目录首先需要设置相应...

    Java使用poi-tl生成word文档

    这个库的设计理念是基于模板的报告生成,即你可以创建一个包含占位符的Word模板文件,然后用Java代码替换这些占位符为实际数据。这极大地提高了生成复杂文档的效率,同时也让文档的格式保持一致。 以下是使用POI-TL...

    peoplecode调用java生成word简历文档

    在IT行业中,有时我们需要集成不同的技术来实现特定功能,比如在这个场景中,"People Code调用Java生成Word简历文档"涉及到的是Oracle PeopleSoft应用中的编程技术和Microsoft Word文档生成。下面是详细的知识点解释...

    java实现生成ppt文件

    在Java编程环境中,生成PPT(PowerPoint)文件是一项实用且常见的任务,特别是在自动化报告、数据分析展示或系统集成等场景中。本示例将详细解析如何利用Java来创建PPT文件,以及涉及到的关键技术和库。 首先,Java...

    java poi设置生成的word的图片为上下型环绕以及其位置的实现

    【Java POI 设置 Word 图片为上下型环绕及位置实现详解】 在使用 Java POI 库生成 Word 文档时,有时我们需要对插入的图片进行格式调整,比如设置为上下型环绕,使其在文本中占据独立空间,同时可以调整图片的位置...

    java导出word

    ### Java生成Word文档:利用Freemarker框架 #### 一、引言 在现代企业级应用开发中,经常需要将数据库中的数据导出为Word文档,以满足业务报告、统计报表等多种需求。Java作为一种广泛使用的编程语言,在处理这类...

    word模板替换方案.docx

    【Word模板替换方案详解】 在IT领域,尤其是在文档自动化处理中,Word模板替换是一个非常实用的功能,它能够高效地批量生成个性化文档。Apache POI是一个流行的Java库,用于读写Microsoft Office格式的文件,而poi-...

    java带格式导出WORD文档

    5. **生成Word文档**:运行Java程序,Freemarker引擎将数据解析并填充到模板中,最终输出符合原始设计要求的Word文档。 ### 3. 实际案例分析 假设我们需要生成一份报告,该报告包含多个章节,每个章节又有各自的...

    关于Eclipse_MyEclipsejava代码模板用法

    ### Eclipse/MyEclipse Java代码模板使用详解 #### 引言 在进行Java开发时,我们经常会遇到一些频繁使用的代码片段。为了提高编码效率、减少重复劳动,Eclipse 和 MyEclipse 提供了代码模板的功能,允许用户自定义...

    Freemakerxml转word详解.doc

    在Java代码中,你需要加载XML模板,创建数据模型(通常是一个Map或自定义对象集合),然后使用FreeMarker的`Template`类将数据模型合并到模板中,最终生成Word文档。这个过程通常涉及以下步骤: - 加载XML模板文件...

    easypoi-jfree:Java生成字带数据图表

    《使用Java生成带数据图表的Word文档——easypoi-jfree详解》 在现代办公环境中,生成带有数据图表的报告文档是一项常见的任务。在Java领域,easypoi-jfree是一个强大的工具,它允许开发者方便地在Word文档中插入...

    Java实现Web报表打印功能.

    无论是直接编程生成还是利用模板填充,iText都能满足不同场景下的需求,成为Java开发者实现报表打印的理想选择。通过本文的探讨,相信读者对如何在Web应用中实现报表打印有了更深入的理解和实践指南。

    Java毕业设计-ssm-vue-高等数学试卷自动生成系统(源码+sql脚本+32页零基础部署图文详解+环境工具+教程+视频+模板).zip

    2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:范例参考毕业论文,万字长文,word文档,支持二次编辑。 4:范例...

    Java毕业设计-ssm-jsp-计算机网络课程试卷生成器(源码+sql脚本+32页零基础部署图文详解+环境工具+教程+视频+模板).zip

    2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:配套答辩ppt...

    Java毕业设计-springboot-vue-纹理生成图片系统(源码+sql脚本+29页零基础部署图文详解+30页论文+环境工具+教程+视频+模板).zip

    2:29页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考...

Global site tag (gtag.js) - Google Analytics