java使用freemarker模版下载成Excel文件
下载整个过程:通过已有的Excel模版,前台显示的某些变量通过后台传到模版中,在后台系统自动组装下载路径和下载名,此下载有一个缺陷就是不能够在页面选择下载路径。
实现过程:
1.建立模版
(1)如果要下载的是word,首先通过word建立模版;如果要下载的是Excel,首先通过Excel建立模版。
(2)将里边的变量使用${变量名}代替
(3)另存为以后缀.xml的格式(这里要注意:如果转成xml之后,里边有${&**&*&8%$变量名**************}的,则需去掉多余的保证freemarker标签完整的前提下将这里改为${变量名})。
(4)将xml后缀改为ftl后缀
2.在工程中加入freemarker.jar
3.在工程中加入以下代码
1)将变量的值存入map中:
/** 用于组装word页面需要的数据 */
Map<String, Object> dataMap = new HashMap<String, Object>();
/** 组装数据 */
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
dataMap.put("currentday",sdf.format(new Date()));
dataMap.put("jhxf",jhxf);
dataMap.put("jhyf",map.get("jhyf"));
dataMap.put("jksz",map.get("jksz") );
dataMap.put("jhxfse", map.get("jhxfse"));
dataMap.put("ldjxbd", ldjxbd);
dataMap.put("ldbdse", map.get("ldbdse"));
dataMap.put("jhyc", jhyc);
dataMap.put("jhycse", map.get("jhycse"));
dataMap.put("dwmc", map.get("dwmc"));
dataMap.put("swjg", map.get("swjg"));
dataMap.put("jssbyf", map.get("jssbyf"));
dataMap.put("nsrsbh", map.get("nsrsbh"));
2)组装文件的文件名(每次的文件名都不一样)
/** 文件名称,唯一字符串 */
Random r=new Random();
SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd_HHmmss_SSS");
StringBuffer sb=new StringBuffer();
sb.append(sdf1.format(new Date()));
sb.append("_");
sb.append(r.nextInt(100));
3)设置保存路径
//文件路径
filePath="F:/HGJKS_tzsxz";
//文件唯一名称
fileOnlyName = "exportWord_"+sb+".xls";
/** 生成word */
}
4)生成word
try {
//创建配置实例
Configuration configuration = new Configuration();
//设置编码
configuration.setDefaultEncoding("UTF-8");
//ftl模板文件统一放至 com.lun.template 包下面
configuration.setClassForTemplateLoading(WordUtil.class,"/com/foresee/hgjks/front/template");
//获取模板
Template template = configuration.getTemplate("zzstzsqr.ftl");
//输出文件
File outFile = new File(filePath+File.separator+fileOnlyName);
//如果输出目标文件夹不存在,则创建
if (!outFile.getParentFile().exists()){
outFile.getParentFile().mkdirs();
}
//将模板和数据模型合并生成文件
Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
//生成文件
template.process(dataMap, out);
//关闭流
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
******************如果有要遍历的列表*******************
java代码中:
1.定义一个list
2.将list放入要存的map里边
freemarker中:
给要遍历的地方加上<#list></#list>
<#list xflist as xftest>----xflist是java中map里边的要遍历的list,xftest是别名。
遍历的时候${xftest.xfxh}。
整体如下:
<#list xflist as xftest>
<Row ss:Height="14.25">
<Cell ss:StyleID="s64"><Data ss:Type="String">${xftest.xfxh}</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">海关缴款书</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">-</Data></Cell>
<Cell ss:StyleID="s64"><Data ss:Type="String">${xftest.xfpzhm}</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">-</Data></Cell>
<Cell ss:StyleID="s64"><Data ss:Type="String">${xftest.xfkjrq}</Data></Cell>
<Cell ss:StyleID="s65"><Data ss:Type="String">-</Data></Cell>
<Cell ss:StyleID="s64"><Data ss:Type="String">${xftest.xfse}</Data></Cell>
</Row>
</#list>
java使用freemarker模版下载成Excel文件相关推荐
- java根据Freemarker模板渲染出Excel文件并在浏览器中下载
**java根据Freemarker模板渲染出Excel文件并在浏览器中下载** 准备工作 1.导入的依赖 2.创建模板 Freemrker语法大全: [Freemarker语法使用请点击该链接跳转学 ...
- excel通过转成xml格式模板,下载成excel文件
源代码: report ztest_down_excel.data: begin of i_file occurs 0,val(255) type c,end of i_file.data begin ...
- pdf转换成excel文件_将PDF文件转换为Excel
pdf转换成excel文件 When I got back to my office after a recent vacation, there was an email from Una, abo ...
- 报表如何批量导出成 excel 文件
需求说明 报表展现后可以通过工具栏中的导出按钮将当前展现的报表导出成 excel 文件,但是在实际使用中通常会要求报表不需要展现,直接通过一些操作将报表导出成 excel 文件,并且往往会要求批量导出 ...
- sqlite mysql excel_SQlite数据库信息怎么转成excel文件?
展开全部 下面的程序能将SQlite数据库信息怎么转成excel文件:package zhaoxing.android.tool; import java.io.File; import java.i ...
- Vue将echarts数据导出成excel文件
Vue将echarts数据导出成excel文件 一.下载vendor插件 下载 vendor 文件放置项目的 src 目录下 链接:https://pan.baidu.com/s/1XYYQ186zo ...
- 在线JSON转换成Excel文件工具
在线JSON转换成Excel文件工具 在线JSON转换成Excel文件工具 本工具可以将JSON数据在浏览器本地转换成Excel支持一键下载. JSON:(JavaScript Object Nota ...
- vue导出excel加一个进度条_vue项目中如何把数据导出成excel文件
Loading... 关于vue中如何把数据导出成excel文件 ### 1. 安装依赖 ``` yarn add file-saver yarn add xlsx yarn add script-l ...
- 怎么把pdf转换成excel文件?
怎么把pdf转换成excel文件?互联网时代的今天,许多办公技巧都有了翻天覆地的变化,其中尤以pdf.excel.word.图片几种文件的相互转换变化较多.过去的办公文员们无论是把pdf转换成exce ...
- 怎么把PDF转换成Excel文件?分享两种简单好用的转换方法
怎么把PDF文件转换成Excel文件呢?大家在日常的办公过程中,传输文件大多数都会使用PDF文件格式,有时候出于工作的需要,在我们接收到一份PDF文件时,要求我们把PDF文件做成Excel表格,我们如 ...
最新文章
- 巧用组策略关闭危险端口
- 制作静态链接库和动态链接库
- 3.1线性判别函数【模式识别】
- 【STM32】标准外设库,系统架构,时钟系统
- 2.6 datetime 模块
- docker 安装nginx_使用 Docker 在你的 mac 上搭建个服务器
- 中小企业信息化,“轻”和“快”是方向
- 隐藏键盘_三星新专利:带有隐藏键盘的三折叠屏手机
- linux c之((void *) - 1)是啥意思
- (poj)1064 Cable master 二分+精度
- 再见Postman,这款API神器更好用!
- Hadoop入门进阶步步高(三-配置Hadoop
- Total internal reflection TIR
- npm的一些常用命令
- hg6201m怎么设置虚拟服务器,移动光猫HG6201M定期重启设置
- Android 自定义动态Drawable实现动态指针时钟功能
- LBS定位和GPS定位的区别
- Python.习题六 字典与集合(上)
- 充电宝买哪种比较好?评价最好的充电宝推荐
- 华为数通模拟器ensp问题解决方法