当前位置: 首页 > news >正文

兰州网站制作企业品牌类网站有哪些

兰州网站制作,企业品牌类网站有哪些,wordpress访问地址修改,美食分享网站怎么做这篇文章,主要介绍如何使用JavaFreemarker模板引擎,根据XML模板文件生成Word文档。 目录 一、导出Word文档 1.1、基础知识 1.2、制作模板文件 1.3、代码实现 (1)引入依赖 (2)创建Freemarker工具类 &…

这篇文章,主要介绍如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档。

目录

一、导出Word文档

1.1、基础知识

1.2、制作模板文件

1.3、代码实现

(1)引入依赖

(2)创建Freemarker工具类

(3)测试案例代码

(4)运行效果


一、导出Word文档

1.1、基础知识

Word文件有两种后缀格式,分别是:doc和docx,doc是Word2003之前使用的,docx是Word2007之后使用的,可以说docx是对doc的扩展和优化。docx的响应速度、性能、占用空间都比doc更好,另外docx本质上是一个zip格式的压缩文件,底层是基于OOXML组织数据的,也就是说,docx底层其实就是使用XML组成的一系列文件,然后使用程序渲染XML文件,最终就是我们看到的Word文件样式啦。

我这篇文章中使用的Word模板文件就是利用docx后缀的,核心思想是将docx文件转换成对应的XML文件,然后修改XML文件中的内容,将其改成Freemarker模板引擎中的占位符,之后通过Freemarker渲染程序将占位符替换成实际的数据,并且将替换之后的模板文件转换成docx文档,这样就实现了根据模板文件生成Word文档啦。

  • 注意:freemarker中的占位符是${},例如:这里使用的是【${name}】的形式,那么传递的数据中就需要有一个叫做【name】的字段。

1.2、制作模板文件

首先创建一个docx后缀的Word文件,文件中的内容你自己根据实际需求编写就可以啦,我创建的docx文件内容如下所示:

内容编辑完成之后,将其另存为XML文件,如下图所示:

导出XML文件之后,打开这个文件,此时你会看到里面都是XML标签,首先格式化一下,这样看起来会舒服些,可以检查一下你的占位符内容是否满足freemarker语法。因为有些时候,我们导出的XML文件中,可能会将【${xxx}】分隔成两行,从而导致占位符失效,所以有时候需要手动修改一下占位符。导出的Word XML文件内容大致如下所示:

替换完成之后,我们的Word模板文件就做好啦,这个XML文件就是我们最终需要的Word模板文件,后面需要使用到。

1.3、代码实现

(1)引入依赖

如果是SpringBoot的工程,SpringBoot已经给我们提供了freemarker的启动器,这使得我们可以快速的集成freemarker,如下:

<!-- 引入 freemarker 依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

如果是普通的Java工程,可以引入下面的依赖:

<!-- https://mvnrepository.com/artifact/org.freemarker/freemarker -->
<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.30</version>
</dependency>

(2)创建Freemarker工具类

引入freemarker依赖之后,就可以使用Freemarker编写一个工具类,专门用于处理文件的导出和数据渲染。


package com.gitcode.demo.util;import freemarker.template.Configuration;
import freemarker.template.Template;import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;
import java.util.Map;/*** @version 1.0.0* @Date: 2023/8/4 15:05* @Author ZhuYouBin* @Description: Freemarker 工具类*/
public class FreemarkerUtil {/*** 使用 Freemarker 生成 Word 文件* @param templateName 模板文件路径名称* @param fileName 生成的文件路径以及名称* @param dataModel 填充的数据对象*/public static void exportWord(String templateName, String fileName, Map<String, Object> dataModel) {generateFile(templateName, fileName, dataModel);}/*** 使用 Freemarker 生成指定文件* @param templateName 模板文件路径名称* @param fileName 生成的文件路径以及名称* @param dataModel 填充的数据对象*/private static void generateFile(String templateName, String fileName, Map<String, Object> dataModel) {try {// 1、创建配置对象Configuration config = new Configuration(Configuration.VERSION_2_3_30);config.setDefaultEncoding("utf-8");config.setClassForTemplateLoading(FreemarkerUtil.class, "/templates");// 2、获取模板文件Template template = config.getTemplate(templateName);// 3、创建生成的文件对象File file = new File(fileName);FileOutputStream fos = new FileOutputStream(file);BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fos, StandardCharsets.UTF_8));// 4、渲染模板文件template.process(dataModel, writer);// 5、关闭流writer.close();} catch (Exception e) {e.printStackTrace();}}}

(3)测试案例代码

package com.gitcode.demo.word;import com.gitcode.demo.util.FreemarkerUtil;import java.util.HashMap;
import java.util.Map;/*** @version 1.0.0* @Date: 2023/8/4 15:26* @Author ZhuYouBin* @Description: 使用 Freemarker 导出 Word 文件*/
public class ExportWordDemo {public static void main(String[] args) {String templateName = "freemarker模板文件.xml";String fileName = "导出的word文档.docx";Map<String, Object> dataModel = new HashMap<>();dataModel.put("name", "张三");dataModel.put("sex", "男");dataModel.put("age", "20");dataModel.put("address", "xxx地址yyy号");// 执行导出FreemarkerUtil.exportWord(templateName, fileName, dataModel);}
}

(4)运行效果

运行测试案例的代码,然后在工程目录下,就可以看到生成的Word文档,内容如下所示:

上面的模板文件只是简单的文本,你也可以添加表格、图片等内容到模板文件里面,可以使用Freemarker中的循环标签实现表格数据的自动添加,图片内容是采用base64编码,所以需要读取图片将其转换成base64编码之后,再渲染到XML文件中,后面的文章在介绍表格和图片的模板导出。

到此,Freemarker导出Word文档就介绍完啦。

综上,这篇文章结束了,主要介绍如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档。

http://www.tj-hxxt.cn/news/128949.html

相关文章:

  • 做网站主要来源前端培训
  • 在阿里云服务器做淘客网站手机如何做网站
  • 丰台网站建设报价无安全警告的浏览器
  • 智信建设职业培训学校网站青岛seo公司
  • 做网站甲方乙方公司的区别火星培训机构收费明细
  • c 网站开发哪些框架免费发帖的网站
  • 做网站应该做到那几点外贸营销网站建设介绍
  • 好用的wordpress插件推荐seo三人行网站
  • dw做的网站 图片的路径百度自己的宣传广告
  • 做传销网站的新闻20条摘抄大全
  • 响应式布局是什么意思网站优化内容
  • 协会网站建设制作服务推广软文范例
  • 广西远伟网络科技有限公司东莞百度推广排名优化
  • 如何使用阿里云建站关键词优化报价查询
  • 建设网站的颜色博客是哪个软件
  • 外卖app开发需要多少钱东莞网站seo优化
  • 网站建设分享文章seo的搜索排名影响因素有
  • 4.请简述网站建设流程的过程如何制作一个网页链接
  • php网站挂到linux服务器上应该这么做百度网盘在线登录
  • 网站中下滑菜单怎么做如何开展网络营销活动
  • 免费源码分享网站旅游企业seo官网分析报告
  • 哪有做网站链接推广
  • delphi WordPress上海百度搜索排名优化
  • 使用php的大型网站杭州优化商务服务公司
  • 上海商城网站建设长春seo主管
  • 计算机软件开发工资高吗重庆seo排名技术
  • 创新创业教育课程网站建设方案产品推广怎么做
  • 网站筛选功能企业查询宝
  • 十五种网络营销工具甲马营seo网站优化的
  • 网页制作与设计中string对象ppt南昌搜索引擎优化