首页 > 其他分享 >freemarker 通过ftl 导出word

freemarker 通过ftl 导出word

时间:2023-03-12 11:55:48浏览次数:39  
标签:word freemarker 导出 测试数据 import new ftl

1:需要的jar

freemarker.jar    https://pan.baidu.com/s/105Ma9aVPha8YvlBkuuO4bA   提取码:b9k8

或者

<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>

2:Java 代码

******************************开始****************************************

package word.moban1;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
/**
* 通过模板下载word word 转成 ftl
* @author cheng
* freemarker.jar
* <dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.32</version>
</dependency>
*
*/
public class mobandachuWord {
public static String exportWord(Map<String,Object> dataMap, String templName, String fileName) throws ParseException {
String pathName = fileName;
String appPath = mobandachuWord.class.getResource("").toString() +templName+ ".ftl";
appPath = appPath.replace("file:/", "");
//path = path.replace("/", "//");
appPath = appPath.substring(0, appPath.lastIndexOf("/"))+"/";
System.out.println("路径:"+appPath);
try {
SimpleDateFormat sdfNow = new SimpleDateFormat("yyyy-MM-dd");
String nowDateStr = sdfNow.format(new Date().getTime());
Date nowDate = sdfNow.parse(nowDateStr);
//Configuration 用于读取ftl文件
Configuration configuration = new Configuration();
configuration.setDefaultEncoding("utf-8");
configuration.setDirectoryForTemplateLoading(new File(appPath));
Template template = configuration.getTemplate(templName + ".ftl", "utf-8");
SimpleDateFormat sdfNow1 = new SimpleDateFormat("yyyyMMddHHmmss");
pathName = fileName +sdfNow1.format(new Date())+".doc";
String download_path = appPath;
// 输出文档路径及名称
if (!(new File(download_path).isDirectory())) {
new File(download_path).mkdirs();
}
File outFile = new File(download_path + pathName);
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "utf-8"), 102400);
template.process(dataMap, out);
} catch (Exception e) {
e.printStackTrace();
}
return pathName;
}

public static void main(String[] args) throws Exception {
Map<String,Object> dataMap =new HashMap();
dataMap.put("name", "测试数据导出");
dataMap.put("title1", "测试数标题");
dataMap.put("text1", "测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出测试数据导出");

//构造数据 , 模板名称 , 导出word名称
exportWord(dataMap,"123","测试模板导出");
System.out.println("导出成功!!!!!!!!路径:");
}
}

******************************结束****************************************

3:模板设置 

1:创建word,word的样式直接自己编辑

 

 

 2:将word 内容更改为  占位符   ${ }  {}内写变量  ,word的样式不变

 

 另存为 xml文件

 

 

 

 

 

 https://tool.ip138.com/xml/

 

 

 

 

 

 

 

 

将ftl文件  和  Java  类   放在同一个文件夹下     执行Java  main方法    ,生成文件的路径   打印再控制台了

 

标签:word,freemarker,导出,测试数据,import,new,ftl
From: https://www.cnblogs.com/xueershewang/p/17207847.html

相关文章

  • 2023,最新wordpress建站教程
    在我们购买了虚拟主机之后,我们要如何用wordpress去搭建一个满足自己需求的网站呢?这篇文章就来详细讲一讲,用wordpress搭建一个网站的具体过程。1.购买域名并完成解析选择......
  • 不坑盒子:强大的word插件,让工作更高效
    不坑盒子简介很多朋友在工作过程中需要对Word文档进行编辑处理,如果想让Word排版更有效率可以试试小编带来的这款不坑盒子软件,这是一个非常好用的插件工具,专门应用在Word文档......
  • C#使用NPOI生成Word文档的方法
    在此我们介绍以模板方式载入内容导出Word文档一、获取模板(XWPFDocumentdoc)1.首先获取模板,然后把获取的模板实例化为NPOI的文档对象进行操作:FileStreamstream=File.O......
  • xshell软件无法通过passwords连接
    使用xshell软件ssh连接远程控制系统时,输入用户名后,发现默认不可通过password登录,但是可通过PublicKey和KeyboardInteractive方式进行连接:1.修改远程控制系统的sudovim......
  • 博客粘贴word图片且图片文件自动上传功能
    ​图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,......
  • Blog粘贴word图片且图片文件自动上传功能
    ​如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-......
  • CSDN粘贴word图片且图片文件自动上传功能
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘......
  • python连接oracle 19c报错误ORA-01017: invalid username/password
    环境:db:19cpython:3.6最近有使用到cx_oracle(5.3)模块,这里记录下出现的问题由于我的项目一直在是windows上测试,最近把项目更新到linux下后,再去跑代码,发现代码报出ORA-2......
  • 在线编辑器粘贴word图片且图片文件自动上传功能
    ​ ueditor粘贴不能粘贴word中的图片是一个很头疼的问题,在我们的业务场景中客户要求必须使用ueditor并且支持word的图片粘贴,因为这个需求头疼了半个月,因为前端方面因为安......
  • 腾讯云Ubuntu安装wordpress (1/3)
    主要用了下面的命令安装apachesudoaptinstallapache2-y安装mariadbsudoaptinstallmariadb-servermariadb-client-y取人mariadb是否安装成功sudosy......