`
骞子_Isaac
  • 浏览: 8301 次
  • 性别: 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 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 API使用-中文word

    ### Java API 使用详解 #### 一、Java 面向对象基本概念 Java是一种完全的面向对象编程语言,除了原始数据类型(如int、double等),几乎所有事物都被视为对象。对象是类的实例,拥有状态(属性)和行为(方法)。...

    swagger2word:一个Swagger API 文档 转 Word 文档的工具项目

    swagger2Word 提供了多种方式生成 word 文档,可以通过 swagger json 的资源地址,例如: ;可以通过上传 json 文件;甚至可以直接输入 json 字符串。 生成的 WORD 示例: --------------版本迭代历程,感谢各位小...

    java导出格式文档

    【Java导出格式文档】与【PageOffice实现动态生成Word】技术详解 在Java开发中,经常需要将数据导出成各种格式的文档,以便进行更直观的数据分析和报告展示。PageOffice是一款强大的Web办公组件,它允许开发者通过...

Global site tag (gtag.js) - Google Analytics