之前我们导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相关推荐

  1. ftl模板导出excel_freemarker导出定制excel

    之前我们导excel大部分用的是jxl和poi,JXL只能对Excel进行操作,属于比较老的框架,它只支持到Excel 95-2000的版本.现在已经停止更新和维护 POI是apache的项目,可对微 ...

  2. java基于jxl.jar包生成Excel文件到指定目录和服务器下载两种模式的使用方法

    导入jxl包 import java.io.File; import jxl.Workbook; import jxl.write.Label; import jxl.write.WritableCe ...

  3. ftl模板导出excel_freemarker导出复杂Excel

    原文: freemarker导出复杂Excel date: 2017-04-20 12:39:04 [TOC] 序言 用Freemarker做Excel导出确实很容易. 但是导出复杂Excel, 例如 ...

  4. java后台将数据导出到Excel表格

    简单粗暴直接贴代码,把所有主要代码全部糅合在一块展示出来: /**     * 设置导出xls文件的表头          */         public static final String[ ...

  5. java将实体数据导出到excel,压缩,删除等一系列~

    利用poi实现java导出数据到excel POI简介:Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组件组成,其中有用于操作Excel格式文件的H ...

  6. java百万条数据导出到excel表格

    JAVA解析Excel工具EasyExcel Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一 ...

  7. 如何通过jsoup网络爬虫工具爬取网页数据,并通过jxl工具导出到excel

    1:闲话少说,直接看需求: 抓取的url:http://www.shparking.cn/index.php/welcome/municipal_parking?key=&per_page=. ...

  8. java jxl 教程,java action jxl 生成并下载excel

    [java] /** * ReportExportAction.java * 版权所有(C) 2012 * 创建:cuiran 2012-08-14 10:38:21 */ package com.w ...

  9. java使用Jxl和Poi读写Excel

    使用Jxl和Poi需要使用到的jar包(由于我所在电脑的权限问题,不能直接给),可自行前往下载:jar下载 要用到的jar包(最好是全下了): 1.commons-io-2.2.jar 2.dom4j ...

  10. Java 亿万级数据导出到Excel

    由于项目需要,处理百万级数据导出问题. 直接开始撸代码~ 导入依赖 <!-- 文件导出--><dependency><groupId>org.apache.poi& ...

最新文章

  1. 来自codeblock 贴吧
  2. 【Python学习教程】推导式与生成器
  3. 图像语义分割_uNetXST:将多个车载摄像头转换为鸟瞰图语义分割图像
  4. Inversion of Control(控制反转)之 Dependency Injection(依赖注入)
  5. ACES学院色彩编码在影片中的应用
  6. Array 和 array 在js中的运用
  7. java.lang.Object是如何成为默认父类的
  8. 《编写可维护的 JavaScript》读书笔记第7章:事件处理
  9. 我的世界服务器起床地图维修,Minecraft·起床战争地图更新来了!地图“雪仗”全面解读!...
  10. .net 微信会员卡接口
  11. PS怎么用3D功能怎么用?如何用PS做立体字
  12. 软件测试工程师自我介绍范文_软件测试面试自我介绍
  13. 3行代码,搞定AI自动抠图
  14. 马克思主义哲学笔记(三)
  15. 计算机算法的控制结构顺序结构,第3章 算法与控制结构.pdf
  16. 转:创业之路“一生悬命”---只有偏执狂才能生存
  17. html+css制作三角形
  18. 本地计算机上的OracleOraDb11g_home1TNSListener服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止
  19. 三菱,FX3U,plc程序模板和触摸屏程序模板,适用于运动轴控制,程序可以在自动的时候暂停进行手动控制
  20. Signal Tab使用指南

热门文章

  1. 机器学习:噪声和错误
  2. android视频拷到iphone6,苹果和安卓手机保存B站视频到U盘方法介绍
  3. NVIDIA显卡驱动更新方法
  4. 植物大战僵尸C语言修改器
  5. 高跟鞋,五角星与黄金分割比
  6. Excel多行转置为一列
  7. 基于微信小程序的超市购物系统
  8. DaVinci:自定义常用剪辑快捷键
  9. cyclone4驱动LM75A温湿度传感器学习
  10. 美国交通信号配时实践经验