在自己的WEB项目中要用到导出Excel,所以结合网络上的资源写了一个自己的export 工具类。

说明:

  • JFinal 环境

  • WEB项目

  • JAVA后台生成非JS插件

好了,直接撸代码

1.设置文件保存路径

private static final String FILEPATH = PathKit.getWebRootPath() + File.separator + "upload" + File.separator ;//路径为webRoot/upload/

2.设置 文件名

public static String getTitle(){
    Date date = new Date();
    SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");  
    String title=FILEPATH+dateFormat.format(date)+"_统计报表.xls";  
    return title;
}

3.前台页面调用

<p Alignment="left"><a href="/admin/pay/export">导出数据</a>

4.contr oller处理并renderFile回去

public void export(){
String sql = "select * from `order`";
Map<String, String> titleData = new HashMap<String, String>();//标题,后面用到
titleData.put("order_no", "账单号");
titleData.put("good_code", "商品编码");
titleData.put("size", "尺码");
titleData.put("number", "数量");
titleData.put("type", "类型");
titleData.put("order_time", "时间");
File file = new File(ExcelExportUtil.getTitle());
file = ExcelExportUtil.saveFile(titleData, sql, file);
this.renderFile(file);
}
 

5.工 具类所有代码

package com.feng.util;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map; import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import com.jfinal.kit.PathKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record; public class ExcelExportUtil { private static final String FILEPATH = PathKit.getWebRootPath() + File.separator + "upload" + File.separator ; public static String getTitle(){
Date date = new Date();
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
String title=FILEPATH+dateFormat.format(date)+"_统计报表.xls";
return title;
} public static File saveFile(Map<String, String> headData, String sql, File file) {
// 创建工作薄
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
// sheet:一张表的简称
// row:表里的行
// 创建工作薄中的工作表
HSSFSheet hssfSheet = hssfWorkbook.createSheet();
// 创建行
HSSFRow row = hssfSheet.createRow();
// 创建单元格,设置表头 创建列
HSSFCell cell = null;
// 初始化索引
int rowIndex = ;
int cellIndex = ; // 创建标题行
row = hssfSheet.createRow(rowIndex);
rowIndex++;
// 遍历标题
for (String h : headData.keySet()) {
//创建列
cell = row.createCell(cellIndex);
//索引递增
cellIndex++;
//逐列插入标题
cell.setCellValue(headData.get(h));
} // 得到所有记录 行:列
List<Record> list = Db.find(sql);
Record record = null; if (list != null) {
// 获取所有的记录 有多少条记录就创建多少行
for (int i = ; i < list.size(); i++) {
row = hssfSheet.createRow(rowIndex);
// 得到所有的行 一个record就代表 一行
record = list.get(i);
//下一行索引
rowIndex++;
//刷新新行索引
cellIndex = ;
// 在有所有的记录基础之上,便利传入进来的表头,再创建N行
for (String h : headData.keySet()) {
cell = row.createCell(cellIndex);
cellIndex++;
//按照每条记录匹配数据
cell.setCellValue(record.get(h) == null ? "" : record.get(h).toString());
}
}
}
try {
FileOutputStream fileOutputStreane = new FileOutputStream(file);
hssfWorkbook.write(fileOutputStreane);
fileOutputStreane.flush();
fileOutputStreane.close(); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return file;
}
}
 

5.最终效果

 

jfinal excel表导出的更多相关文章

  1. yii2 中excel表导出

    首先下载phpexcel 在引入类文件(在web中index.php入口文件或者控制器中引入) require_once dirname(dirname(__FILE__)).'/excel/PHPE ...

  2. Excel表导出

     前言 分别介绍两种导出Exce表格的方法和读取Excel表格数据方法. 1.在MVC下的表格导出. 2.基于NPOI的表格导出. 3.读取Excel表格数据. 第一种方法:在MVC下的表格导出. 首 ...

  3. jfinal中excel表格导出

    今天工作中遇到了excel表格导出的操作,还好有写好的模板,不然我也是焦头烂额,下面记录一下excel表格导出的操作步骤,同时用来给正在学习jfinal的小伙伴一些参考和学习. 首先我们需要把表格查询 ...

  4. thinkphp导入导出excel表单数据

    在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传e ...

  5. ASPNET 导出EXCEL表

    其实网上有很多关于Excel的例子,但是不是很好,他们的代码没有很全,读的起来还很晦涩.经过这几天的摸索,终于可以完成我想要导出报表Excel的效果了.下面是我的效果图. 一.前台的页面图 GridV ...

  6. ASP.NET 导出gridview中的数据到Excel表中,并对指定单元格换行操作

    1. 使用NPOI读取及生成excel表. (1)导出Click事件: 获取DataTable; 给文件加文件名: string xlsxName = "xxx_" + DateT ...

  7. 将数据导出成excel表

    /// <summary> /// 生成excel表 /// </summary> /// <param name="dt">数据表</p ...

  8. 数据库多张表导出到excel

    数据库多张表导出到excel public static void export() throws Exception{ //声明需要导出的数据库 String dbName = "hdcl ...

  9. 【ITOO 1】将List数据导出Excel表

    需求描述:在课表导入的时候,首先给用户提供模板(excel),然后将用户填写好的数据读取到list集合中.再进行判空处赋值处理,以及去重处理.这篇博客,主要介绍读取excel表和导出excel表的方法 ...

随机推荐

  1. php与MySQL与echart综合使用

    http://www.yinghualuowu.com/php/echart.html 创建table sex 有name num             <?php ini_set('disp ...

  2. 009 Palindrome Number 判断一个正整数是否是回文数

    详见:https://leetcode.com/problems/palindrome-number/description/ 实现语言:Java 方法一: class Solution { publ ...

  3. Storm概念学习系列之Task任务

    不多说,直接上干货! 每一个Spout/Bolt的线程称为一个Task. Task任务 Task是运行Spout或Bolt的单元,每一个Spout/Bolt的线程称为一个Task. 在Storm 0. ...

  4. 【Java密码学】Java SE 6中XML数字签名的实现

    package test.xml.signature; import java.io.File; import java.io.FileInputStream; import java.io.File ...

  5. Oracle视图,索引,序列

    什么是视图[View] (1)视图是一种虚表 (2)视图建立在已有表的基础上, 视图赖以建立的这些表称为基表(3)向视图提供数据内容的语句为 SELECT 语句,可以将视图理解为存储起来的 SELEC ...

  6. Maven的学习资料收集--(七) 构建Spring项目

    在这里,使用Maven构建一个Spring项目 构建单独项目的话,其实都差不多 1. 新建一个Web项目 参考之前的博客 2.修改 pom.xml,添加Spring依赖 <project xml ...

  7. Get和Post的请求

    get post请求 <form method="post","get", action="a.ashx"> <input ...

  8. Android入门:Activity生命周期

    一.Activity生命周期介绍 我们在学Java Web时会学到Servlet的生命周期,因此对生命周期的概念已经有一定了解,简单地说就是某个事物从出生到死亡的过程. Activity也存在声明周期 ...

  9. 从零开始的全栈工程师——js篇2.11(原型)

    原型 原型分析 1.每个 函数数据类型(普通函数,类)都有一个prototype属性 并且这个属性是一个对象数据类型2.每个Prototype上都有一个constructor属性 并且这个属性值是当前 ...

  10. let和const命令整理

    一.let命令 基本用法 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. for循环的计数器,就很合适使用let命令. for循环还 ...