SSM框架将数据库数据导出为Excel文件
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文件相关推荐
- springboot实现数据库数据导出生成Excel报表
一.导入poi依赖 <!-- poi实现excel导入导出--><dependency><groupId>org.apache.poi</groupId> ...
- excel文件导入hive乱码_把数据库数据导出到excel
SQL Server BI Step by Step 2--- 使用SSIS进行简单的数据导入导出 让我们首先开始学习SSIS吧,利用SSIS把SQL Server中的数据导出.首先,打开Vs.net ...
- 将数据库数据导出到Excel中,并可以在浏览器上下载Excel
将数据库数据导出到Excel中,并可以在浏览器上下载Excel 附代码: //设置文件保存路径 public static String url ="F:\\Workspase\\BackC ...
- 数据库数据导出到Excel
数据库数据导出到Excel 从数据库中获取数据,使用java建立一个新建Excel,添加表头,并将数据存储到Excel表格中的对应位置上. 在新建一个Excel时,我们会需要定义一些特别的Excel格 ...
- 使用java在后台将数据导出为excel文件
本文主要讲的是怎么使用java将数据导出为Excel文件,xls格式的. 例如:我从前台查询到的数据,要把数据进行导出为excl格式的文件.需要将前台的查询条件(数据)传递到后台,后台拿到数据,写sq ...
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...
本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较 (三)SSIS的简介 (四)数据库中存储过程示例(SSIS应用需要) (五)Excel模板的制作(这步这么简单,稍微介 ...
- 数据导出到excel文件给客户端下载的几种方法
(原创)datagrid数据导出到excel文件给客户端下载的几种方法 看到这个觉得这个人很厉害,mvp啊. 我就改成这个样子了. Response.Clear(); Respons ...
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转...
效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载]) 本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较 ( ...
- 如何优化百万级别数据导出(excel 文件)
如何优化百万级别数据导出(excel 文件) 背景 未优化前存在的问题 业务接口流程 优化后 业务接口流程(优化版v1) 业务接口流程(优化版v2) 优化效果 复盘 宏观层面 遇到的困难 收获 代码实 ...
最新文章
- 关于spring中commons-attributes-compiler.jar的使用问题
- 【转】iOS-Core-Animation-Advanced-Techniques(六)
- stdthread(6)并发lockGuard
- Cocos2d-x3.0 DrawNode吸取
- 【BZOJ】1004: [HNOI2008]Cards(置换群+polya+burnside)
- Qt 如何处理密集型耗时的事情
- grafana 创建仪表盘_创建仪表盘前要问的三个问题
- C语言 error C4996: This function or variable may be unsafe - C语言零基础入门教程
- 思科isis路由的优先级_华为 路由双点双向引入
- 使用C#: 自动切换鼠标的左右手习惯
- WebService 调用接口报错(0)null
- 流程图与活动图的区别与联系
- 【计算机网络微课堂】3.3 差错检测
- 【DB笔试面试764】在Oracle中,逻辑DG维护中常用到的SQL语句有哪些?
- 什么是 Batch normalization
- 多少资金能做股指期货?要交哪些费?
- 计算机专业勤学善思感悟,做一个勤学善思的人演讲稿
- Google Docs API 介绍
- 我的眉画得浓淡可合时兴?打起黄莺儿,莫教枝上啼。
- 计算机一级考试选择题1
热门文章
- wget OpenSSL: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
- linux 压缩固定大小,Linux 将文件打包、压缩并分割成指定大小
- MySQL——创建存储过程和函数
- 解析儿童编程中的基本概念与目标
- CodeSys轴控指令使用方法
- 大数据面试题——数据库
- 人脸识别技术介绍和表情识别最新研究
- WebGoat安装及使用说明
- matlab2016agui出错,关于 gui运行出错的问题
- 如何在未越狱iOS设备上安装IPA