JFinal框架使用renderFile()进行列表页面数据导出Excel
2018-01-15 18:57
519 查看
package com.business.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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.plugin.activerecord.Record;
public class ExcelExportUtil {
private static final String FILEPATH = new File("C:/").getAbsolutePath();
private static final String time = DateUtil.formatDate();
public static String getTitle(String title){
//title是Excel命名名称
String name=FILEPATH+title+"-"+time+"_统计表.xls";
return name;
}
public static File saveFile(Map<String, String> headData, List<Record> list, File file) {
// 创建工作薄
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
// 创建工作薄中的工作表 sheet:一张表的简称
HSSFSheet hssfSheet = hssfWorkbook.createSheet();
// 创建行
HSSFRow row = hssfSheet.createRow(0);
// 创建单元格
HSSFCell cell = null;
// 初始化索引
int rowIndex = 0;
int cellIndex = 0;
// 创建标题行
row = hssfSheet.createRow(rowIndex);
rowIndex++;
// 遍历标题
for (String h : headData.keySet()) {
//创建列
cell = row.createCell(cellIndex);
//索引递增
cellIndex++;
//逐列插入标题
cell.setCellValue(headData.get(h));
}
// 得到所有记录 行:列
Record record = null;
if (list != null) {
// 获取所有的记录 有多少条记录就创建多少行
for (int i = 0; i < list.size(); i++) {
row = hssfSheet.createRow(rowIndex);
// 得到所有的行 一个record就代表 一行
record = list.get(i);
//下一行索引
rowIndex++;
//刷新新行索引
cellIndex = 0;
// 在有所有的记录基础之上,便利传入进来的表头,再创建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;
}
}
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
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.plugin.activerecord.Record;
public class ExcelExportUtil {
private static final String FILEPATH = new File("C:/").getAbsolutePath();
private static final String time = DateUtil.formatDate();
public static String getTitle(String title){
//title是Excel命名名称
String name=FILEPATH+title+"-"+time+"_统计表.xls";
return name;
}
public static File saveFile(Map<String, String> headData, List<Record> list, File file) {
// 创建工作薄
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
// 创建工作薄中的工作表 sheet:一张表的简称
HSSFSheet hssfSheet = hssfWorkbook.createSheet();
// 创建行
HSSFRow row = hssfSheet.createRow(0);
// 创建单元格
HSSFCell cell = null;
// 初始化索引
int rowIndex = 0;
int cellIndex = 0;
// 创建标题行
row = hssfSheet.createRow(rowIndex);
rowIndex++;
// 遍历标题
for (String h : headData.keySet()) {
//创建列
cell = row.createCell(cellIndex);
//索引递增
cellIndex++;
//逐列插入标题
cell.setCellValue(headData.get(h));
}
// 得到所有记录 行:列
Record record = null;
if (list != null) {
// 获取所有的记录 有多少条记录就创建多少行
for (int i = 0; i < list.size(); i++) {
row = hssfSheet.createRow(rowIndex);
// 得到所有的行 一个record就代表 一行
record = list.get(i);
//下一行索引
rowIndex++;
//刷新新行索引
cellIndex = 0;
// 在有所有的记录基础之上,便利传入进来的表头,再创建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;
}
}
相关文章推荐
- ssm框架使用poi实现数据导出到excel,并弹框下载
- net控件中数据导到Excel的格式 首先,我们了解一下excel从web页面上导出的原理。当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果cell没有规定的格式,则excel会以默认的格式去呈现该cell的数据。这样就给我们提供了自定义数据格式的空间,当然我们必须使用excel支持的格式。下面就列出常用的一些格式: 1) 文本
- jsp页面导出当前list数据列表 excel
- 将页面的列表数据导出到excel文件中
- J2EE项目系列(四)--SSM框架构建积分系统和基本商品检索系统(Spring+SpringMVC+MyBatis)(3)Ajax使用详解(级联列表)以及企业级报表Excel导入导出实现
- java、Extjs导出数据库里的数据至Excel并下载至本地进行数据备份方法之一——使用servlet
- java中使用JXL对Excel文件进行数据的写入、导出操作
- CI框架里面PHPExcel的使用|导出数据到Excel文件
- 使用XML&XSL替代OWC进行数据导出为EXCEL
- CI Codeigniter框架里面PHPExcel的使用|导出数据到Excel文件
- java、Extjs导出数据库里的数据至Excel并下载至本地进行数据备份方法之二——使用Action
- ZK框架简介,以及在ZK下使用JXL读取Excel模板,导出数据模型到Excel的方法
- java中使用JXL对Excel文件进行数据的写入、导出操作
- php页面数据列表实现excel导出功能
- JAVA使用poi进行EXCEL模板导入导出,XSSFCell数据类型
- 从页面表格导出数据到Excel
- [EXCEL][STEP BY STEP]使用超级连接进行数据查询
- 使用Transact-SQL进行数据导入导出方法
- SQL SERVER使用OpenRowset,、OpenDataSource函数导入、导出数据到Excel 的几种方法(整理)
- jsp页面显示数据导出到excel表中