freemarker 导出Excel

原创 2015年10月23日 14:47:05

927

在项目开发中,导出Excel 是比较常见的功能, 以前用过POI导出Excel 文件, 但是POI 在使用方面比较麻烦, 而用freemarker 来导出Excel 会简单很多。

1. 创建Excel文件:student.xls ,你想生成什么样式的Excel 文件, 先做一个模板。

2. 另存为 xml 文件:  studen.xml。

3. 将student.xml 文件,copy 到Eclipse中,进行格式化:Ctrl + Shift + F

4. 替换响应的部分:

【替换前】

【替换后】

5. 将studnet.xml 文件重命名为 freemarker 模板文件: student.ftl . 到此,导出excel 的模板文件就制作完成了。

7. 创建一个Student 类, 作为数据模型

public class Student {

private int id;

private String name;

private int grade;

private int cls;

private float english;

private float chinese;

private float math;

public Student(Integer id, String name, int grade, int cls, float english, float chinese, float math) {

super();

this.id = id;

this.name = name;

this.grade = grade;

this.cls = cls;

this.english = english;

this.chinese = chinese;

this.math = math;

}

public Student() {

super();

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getGrade() {

return grade;

}

public void setGrade(int grade) {

this.grade = grade;

}

public int getCls() {

return cls;

}

public void setCls(int cls) {

this.cls = cls;

}

public float getEnglish() {

return english;

}

public void setEnglish(float english) {

this.english = english;

}

public float getChinese() {

return chinese;

}

public void setChinese(float chinese) {

this.chinese = chinese;

}

public float getMath() {

return math;

}

public void setMath(float math) {

this.math = math;

}

}

8. 写一个测试类,来生成Excel

import java.io.File;

import java.io.FileWriter;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import freemarker.template.Configuration;

import freemarker.template.Template;

public class Test_export_Excel {

/** 设置表格标题    */

private static List getTitles(){

List titles = new ArrayList<>();

titles.add("序号");

titles.add("姓名");

titles.add("年级");

titles.add("班级");

titles.add("语文");

titles.add("数学");

titles.add("英语");

return titles;

}

/** 设置表格内容    */

private static List getStudents(){

List students = new ArrayList<>();

for(int i=0; i<10; i++){

Student student = new Student(100 + i, "zong_"+i, 1+i, 2+i, 90+i, 80+i, 100-i);

students.add(student);

}

return students;

}

public static void main(String[] args) throws Exception{

//加载freemarker 模板,获取模板对象

Configuration cfg = new Configuration();

cfg.setDirectoryForTemplateLoading(new File("templates"));

Template studentTemplate = cfg.getTemplate("excel_student.ftl");

//设置表格标题和内容

List titles = getTitles();

List students = getStudents();

Map root = new HashMap();

root.put("titles", titles);

root.put("students", students);

File file = new File("D:/excel_students.xls");

FileWriter fw = new FileWriter(file);

//按照ftl 模板规定的样式,将root 对象里的内容写入新的文件

studentTemplate.process(root, fw);

fw.flush();

fw.close();

}

}

9. 生成效果图:

10. 项目包结构视图:

【注】 此种方式生成的Excel 只能用 excel 07 之后的版本打开,office 07 及之前的版本不能打开。

ftl模板导出excel_freemarker导出Excel相关推荐

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

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

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

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

  3. ftl模板导出excel_使用freemark模板生成excel

    1.背景 文件操作中导入导出功能在项目中十分常见,这里我们要聊的是导出excel这一功能.老话题常谈常新,小编给大家介绍使用freemark模板的方式导出excel. 2.实现 Demo中采用spri ...

  4. ftl模板导出excel_使用freemarker模板引擎导出word或excel文件(代码实现)

    在项目中我们会遇到很多导入导出excel或者word 有时候一些比较复杂的表格设计用freemarker 来做为模板导出还是很不错的 具体操作 我们要针对该列表做数据导出模板 在桌面右键新建一个exc ...

  5. 无插件,无com组件,利用EXCEL、WORD模板做数据导出(一)

    本次随笔主要讲述着工作中是如何解决数据导出的,对于数据导出到excel在日常工作中大家还是比较常用的,那导出到word呢,改如何处理呢,简单的页面导出问题应该不大,但是如果是标准的公文导出呢,要保证其 ...

  6. java导出数据到excel模板_springboot+jxls 根据Excel模板 填写数据并导出

    项目结构 pom.xml net.sf.jxls jxls-core 1.0.6compile 学生信息表模板: ExcelUtiles package cn.bdqn.utils;import ne ...

  7. easypoi利用模板导出图片到Excel;解决easypoi导出图片到合并单元格单元格被拉伸的问题

    easypoi的封装是非常好的,用起来很简单. 官方教程地址:http://easypoi.mydoc.io/ 但是在使用模板导出图片到合并单元格时出问题了,官网找了好几遍没找到方案. 其实官方早就实 ...

  8. SpringBoot使用EasyExcel 模板填充数据并导出,以及Excel导入解析入库

    需求 1.导出Excel模板,第一个sheet为用户基本信息,默认只有表头,用户手动填写后续用来导入人员信息.第二个sheet为组织架构信息,默认从数据库查询组织信息,方便用户查询组织编码. 2.导入 ...

  9. php excel模板导出、openoffice excel转pdf、多文件压缩下载

    最近两周都在弄关于excel模板导出.excel转pdf.多文件压缩下载.弄得头都大了,接下来说说实现的方法吧. 我用的是laravel5.1的框架,读取模板生成excel,并且插入图片,直接上代码 ...

最新文章

  1. Linux wc命令详解
  2. 使用pytorch建立LSTM神经网络训练识别手写数字
  3. 上传本地文件到gitlab 项目里的某个文件夹
  4. 如何为部署到 SAP BTP 平台上的 Node.js 应用提供Authorization 和 Trust 管理 - 权限管控
  5. 把日志文件从Linux服务器拷贝到Windows上
  6. FindBugs Maven插件教程
  7. HDU - 5878 A - I Count Two Three H 技巧枚举
  8. 自己定义html中a标签的title提示tooltip
  9. 如何使用Countifs函数动态统计
  10. 关于如何在Listener中注入service和ServletContextListener源码分析
  11. Docker跨服务器通信Overlay解决方案(上) Consul单实例
  12. ES6与ES2015、ES2016以及ECMAScript的区别
  13. QCustomplot绘图性能的改善
  14. 2019年网络工程师考试大纲
  15. APK瘦身实践之旅——启动篇
  16. a5解锁 oppo_oppoa5忘记密码了怎么强制解锁
  17. 赵小楼《天道》《遥远的救世主》深度解析(66)辩证思维的讨论:人性、教义、逻辑
  18. 【智能手环APP for Android 】01 百度地图展示行动轨迹
  19. 期货什么情况下会强制平仓
  20. EasyTest 接口自动化测试平台 搭建手顺

热门文章

  1. 章节1 计算机体系结构
  2. 最先进的Git分布式仓库系统——是如何提升编程效率的?
  3. 树莓派4B EC20 查看4G信号强度
  4. 时间序列 预处理 python_时间序列算法理论及python实现(1-算法理论部分)
  5. LwIP应用笔记(二):无操作系统支持下的RAW API移植
  6. IPO并不遥远,飞哥IPERi模型助你打开互联网创业创新成功密码
  7. YOLOv5桌面应用开发(从零开始)
  8. 使用搜狗接口对微信公众号爬虫
  9. 数学计算机游戏攻略,孩子们的游戏学习基本的数学
  10. 基于GNN的图表示学习及其应用