java freemarker jxl excel_freemarker导出定制excel
之前我们导excel大部分用的是jxl和poi,JXL只能对Excel进行操作,属于比较老的框架,它只支持到Excel 95-2000的版本。现在已经停止更新和维护
POI是apache的项目,可对微软的Word,Excel,ppt等进行操作,包括office2003和2007,Excl2003和2007。poi现在一直有更新。所以现在主流使用POI
如果只是简单的excel,用上述工具导出没有任何问题,但如果导出定制化复杂的excel或word,就会显得很繁琐,代码也有一定难度,所以我尝试用freemarker
来导出
先制作一个定制的excel
新建一个excel,在里面写上点数据并将后缀改为.xml
将下图的 1和张三改一下以接收数据,将excel复制到项目的resource目录中将后缀名改为.ftl
到这一步excel已经好了,接下来就是代码
需要的maven包
org.freemarker
freemarker
2.3.20
导出的方法
package com.pskj.GSLZ.utils.word;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import java.io.*;
import java.util.HashMap;
import java.util.Map;/**
* word,excel导出*/
public classFreemarkerWord {private Configuration configuration = null;publicFreemarkerWord() {
configuration= newConfiguration();
configuration.setDefaultEncoding("utf-8");
}/**
* dataMap为要装载的数据
* @param dataMap*/
public voidcreateDoc(Map dataMap) {//设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,//这里我的模板是放在resources/ftl包下(放在其它位置总会报文件找不到)
configuration.setClassForTemplateLoading(this.getClass(),"/ftl");
Template t= null;try{//test2.ftl为要装载的模板
t= configuration.getTemplate("test2.ftl");
t.setEncoding("utf-8");
}catch(IOException e) {
e.printStackTrace();
}//输出文档路径及名称
File outFile= new File("E:/test2.xls");
Writerout = null;try{out = new BufferedWriter(newOutputStreamWriter(new FileOutputStream(outFile), "utf-8"));
}catch(Exception e1) {
e1.printStackTrace();
}try{
t.process(dataMap,out);out.close();
}catch(TemplateException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}public static voidmain(String[] args) {
Map map=newHashMap();
map.put("id", "1");//添加数据
map.put("name", "光头权");
FreemarkerWord fw=newFreemarkerWord();
fw.createDoc(map);//调用导出方法
}
}
运行之后
再就是导出多条数据,修改之后的可循环遍历数据
查询数据库后调用导出方法,数据也能正常导出
/**
* 根据excel模板导出数据*/@RequestMapping("listAll")
@ResponseBodypublic voidlistAll() {
PageData pd=this.getPageData();//用于接受参数的封装类
FreemarkerWord fw=new FreemarkerWord();//实例化该导出类
Map dataMap = newHashMap();try{
List list=fhlogService.listAll(pd);//获取多组数据
dataMap.put("list",list);//将数据装进Map
fw.createDoc(dataMap);//调用导出方法
}catch(Exception e){
e.printStackTrace();
}
}
参考链接: https://blog.csdn.net/guangcigeyun/article/details/78769704
参考链接: https://www.jianshu.com/p/66645b71942f
java freemarker jxl excel_freemarker导出定制excel相关推荐
- ftl模板导出excel_freemarker导出定制excel
之前我们导excel大部分用的是jxl和poi,JXL只能对Excel进行操作,属于比较老的框架,它只支持到Excel 95-2000的版本.现在已经停止更新和维护 POI是apache的项目,可对微 ...
- java基于jxl.jar包生成Excel文件到指定目录和服务器下载两种模式的使用方法
导入jxl包 import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableCe ...
- ftl模板导出excel_freemarker导出复杂Excel
原文: freemarker导出复杂Excel date: 2017-04-20 12:39:04 [TOC] 序言 用Freemarker做Excel导出确实很容易. 但是导出复杂Excel, 例如 ...
- java后台将数据导出到Excel表格
简单粗暴直接贴代码,把所有主要代码全部糅合在一块展示出来: /** * 设置导出xls文件的表头 */ public static final String[ ...
- java将实体数据导出到excel,压缩,删除等一系列~
利用poi实现java导出数据到excel POI简介:Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其中有用于操作Excel格式文件的H ...
- java百万条数据导出到excel表格
JAVA解析Excel工具EasyExcel Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一 ...
- 如何通过jsoup网络爬虫工具爬取网页数据,并通过jxl工具导出到excel
1:闲话少说,直接看需求: 抓取的url:http://www.shparking.cn/index.php/welcome/municipal_parking?key=&per_page=. ...
- java jxl 教程,java action jxl 生成并下载excel
[java] /** * ReportExportAction.java * 版权所有(C) 2012 * 创建:cuiran 2012-08-14 10:38:21 */ package com.w ...
- java使用Jxl和Poi读写Excel
使用Jxl和Poi需要使用到的jar包(由于我所在电脑的权限问题,不能直接给),可自行前往下载:jar下载 要用到的jar包(最好是全下了): 1.commons-io-2.2.jar 2.dom4j ...
- Java 亿万级数据导出到Excel
由于项目需要,处理百万级数据导出问题. 直接开始撸代码~ 导入依赖 <!-- 文件导出--><dependency><groupId>org.apache.poi& ...
最新文章
- 来自codeblock 贴吧
- 【Python学习教程】推导式与生成器
- 图像语义分割_uNetXST:将多个车载摄像头转换为鸟瞰图语义分割图像
- Inversion of Control(控制反转)之 Dependency Injection(依赖注入)
- ACES学院色彩编码在影片中的应用
- Array 和 array 在js中的运用
- java.lang.Object是如何成为默认父类的
- 《编写可维护的 JavaScript》读书笔记第7章:事件处理
- 我的世界服务器起床地图维修,Minecraft·起床战争地图更新来了!地图“雪仗”全面解读!...
- .net 微信会员卡接口
- PS怎么用3D功能怎么用?如何用PS做立体字
- 软件测试工程师自我介绍范文_软件测试面试自我介绍
- 3行代码,搞定AI自动抠图
- 马克思主义哲学笔记(三)
- 计算机算法的控制结构顺序结构,第3章 算法与控制结构.pdf
- 转:创业之路“一生悬命”---只有偏执狂才能生存
- html+css制作三角形
- 本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止
- 三菱,FX3U,plc程序模板和触摸屏程序模板,适用于运动轴控制,程序可以在自动的时候暂停进行手动控制
- Signal Tab使用指南