jsp页面主要代码:

<span id="export" οnclick="window.location.href='${APP_PATH}/export'" >导出</span>

Controller层:

@ResponseBody
@RequestMapping("/export")
public void export(HttpServletRequest request, HttpServletResponse response) {Encrypt encrypt = new Encrypt();//创建实体类对象List<Encrypt> encryptList = encryptService.getEncryptDeviceForExcel(encrypt);ExportExcel<Encrypt> ee= new ExportExcel<Encrypt>();String[] headers = {对应实体类的字段名,之间用逗号隔开};String fileName = "导出Excel文件名称";ee.exportExcel(headers,encryptList,fileName,response);
}

Service层:

public  List<Encrypt> getEncryptDeviceForExcel(Encrypt encrypt);

Service实现类:

@Override
public List<Encrypt> getEncryptDeviceForExcel(Encrypt encrypt) {List<Encrypt> list = encryptDao.getEncryptDeviceForExcel(encrypt);return list;
}

Dao层:

public List<Encrypt> getEncryptDeviceForExcel(Encrypt encrypt);

mapper.xml文件就省略了.....就是简单的查询所有的语句

导出工具类:

import org.apache.poi.hssf.usermodel.*;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedOutputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Iterator;
public class ExportExcel<T> {public void exportExcel(String[] headers,Collection<T> dataset, String fileName,HttpServletResponse response) {// 声明一个工作薄HSSFWorkbook workbook = new HSSFWorkbook();// 生成一个表格HSSFSheet sheet = workbook.createSheet(fileName);// 设置表格默认列宽度为15个字节sheet.setDefaultColumnWidth((short) 20);// 产生表格标题行HSSFRow row = sheet.createRow(0);for (short i = 0; i < headers.length; i++) {HSSFCell cell = row.createCell(i);HSSFRichTextString text = new HSSFRichTextString(headers[i]);cell.setCellValue(text);}try {// 遍历集合数据,产生数据行Iterator<T> it = dataset.iterator();int index = 0;while (it.hasNext()) {index++;row = sheet.createRow(index);T t = (T) it.next();// 利用反射,根据javabean属性的先后顺序,动态调用getXxx()方法得到属性值Field[] fields = t.getClass().getDeclaredFields();for (short i = 0; i < headers.length; i++) {HSSFCell cell = row.createCell(i);Field field = fields[i];String fieldName = field.getName();String getMethodName = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);Class tCls = t.getClass();Method getMethod = tCls.getMethod(getMethodName, new Class[] {});Object value = getMethod.invoke(t, new Object[] {});// 判断值的类型后进行强制类型转换String textValue = null;// 其它数据类型都当作字符串简单处理if(value != null && value != ""){textValue = value.toString();}if (textValue != null) {HSSFRichTextString richString = new HSSFRichTextString(textValue);cell.setCellValue(richString);}}}getExportedFile(workbook, fileName,response);} catch (Exception e) {e.printStackTrace();}}/**** 方法说明: 指定路径下生成EXCEL文件* @return*/public void getExportedFile(HSSFWorkbook workbook, String name,HttpServletResponse response) throws Exception {BufferedOutputStream fos = null;try {String fileName = name + ".xls";response.setContentType("application/x-msdownload");response.setHeader("Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" ));fos = new BufferedOutputStream(response.getOutputStream());workbook.write(fos);} catch (Exception e) {e.printStackTrace();} finally {if (fos != null) {fos.close();}}}
}

SSM框架将数据库数据导出为Excel文件相关推荐

  1. springboot实现数据库数据导出生成Excel报表

    一.导入poi依赖 <!-- poi实现excel导入导出--><dependency><groupId>org.apache.poi</groupId> ...

  2. excel文件导入hive乱码_把数据库数据导出到excel

    SQL Server BI Step by Step 2--- 使用SSIS进行简单的数据导入导出 让我们首先开始学习SSIS吧,利用SSIS把SQL Server中的数据导出.首先,打开Vs.net ...

  3. 将数据库数据导出到Excel中,并可以在浏览器上下载Excel

    将数据库数据导出到Excel中,并可以在浏览器上下载Excel 附代码: //设置文件保存路径 public static String url ="F:\\Workspase\\BackC ...

  4. 数据库数据导出到Excel

    数据库数据导出到Excel 从数据库中获取数据,使用java建立一个新建Excel,添加表头,并将数据存储到Excel表格中的对应位置上. 在新建一个Excel时,我们会需要定义一些特别的Excel格 ...

  5. 使用java在后台将数据导出为excel文件

    本文主要讲的是怎么使用java将数据导出为Excel文件,xls格式的. 例如:我从前台查询到的数据,要把数据进行导出为excl格式的文件.需要将前台的查询条件(数据)传递到后台,后台拿到数据,写sq ...

  6. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...

     本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较    (三)SSIS的简介    (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介 ...

  7. 数据导出到excel文件给客户端下载的几种方法

    (原创)datagrid数据导出到excel文件给客户端下载的几种方法 看到这个觉得这个人很厉害,mvp啊. 我就改成这个样子了.  Response.Clear();         Respons ...

  8. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转...

    效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载])  本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较    ( ...

  9. 如何优化百万级别数据导出(excel 文件)

    如何优化百万级别数据导出(excel 文件) 背景 未优化前存在的问题 业务接口流程 优化后 业务接口流程(优化版v1) 业务接口流程(优化版v2) 优化效果 复盘 宏观层面 遇到的困难 收获 代码实 ...

最新文章

  1. 关于spring中commons-attributes-compiler.jar的使用问题
  2. 【转】iOS-Core-Animation-Advanced-Techniques(六)
  3. stdthread(6)并发lockGuard
  4. Cocos2d-x3.0 DrawNode吸取
  5. 【BZOJ】1004: [HNOI2008]Cards(置换群+polya+burnside)
  6. Qt 如何处理密集型耗时的事情
  7. grafana 创建仪表盘_创建仪表盘前要问的三个问题
  8. C语言 error C4996: This function or variable may be unsafe - C语言零基础入门教程
  9. 思科isis路由的优先级_华为 路由双点双向引入
  10. 使用C#: 自动切换鼠标的左右手习惯
  11. WebService 调用接口报错(0)null
  12. 流程图与活动图的区别与联系
  13. 【计算机网络微课堂】3.3 差错检测
  14. 【DB笔试面试764】在Oracle中,逻辑DG维护中常用到的SQL语句有哪些?
  15. 什么是 Batch normalization
  16. 多少资金能做股指期货?要交哪些费?
  17. 计算机专业勤学善思感悟,做一个勤学善思的人演讲稿
  18. Google Docs API 介绍
  19. 我的眉画得浓淡可合时兴?打起黄莺儿,莫教枝上啼。
  20. 计算机一级考试选择题1

热门文章

  1. wget OpenSSL: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
  2. linux 压缩固定大小,Linux 将文件打包、压缩并分割成指定大小
  3. MySQL——创建存储过程和函数
  4. 解析儿童编程中的基本概念与目标
  5. CodeSys轴控指令使用方法
  6. 大数据面试题——数据库
  7. 人脸识别技术介绍和表情识别最新研究
  8. WebGoat安装及使用说明
  9. matlab2016agui出错,关于 gui运行出错的问题
  10. 如何在未越狱iOS设备上安装IPA