controller

/*** * @Description (导出申请单)* @author feizhou* @Date 2018年6月21日下午4:33:02  * @version 1.0.0* @param resquest* @param response*/@RequestMapping(value = "/PushLogController/exportDateByModel.do")public void exportDateByModel(HttpServletRequest resquest,HttpServletResponse  response,String[] applicationNOs) {
//      String jsonStr=null;Map<String, Object> paramMap = RequestUtil.getUrlParam(resquest);paramMap.put("applicationNOs", applicationNOs);paramMap.put("startRow",1);try {pushLogService.exportDateByModel(paramMap,resquest,response);} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}

service

@Overridepublic void exportDateByModel(Map<String, Object> paramMap,HttpServletRequest request,HttpServletResponse response) {String fileName=(String) paramMap.get("fileName");Integer startRow=(Integer) paramMap.get("startRow");//模板路径String modelURL=Constans.applicationModel;List<List<String >>listData=null;listData=bulidListData(paramMap);if(StringUtil.isEmpty(listData)){throw new MyException("所选的申请单没有还款计划");}if(StringUtil.isEmpty(fileName)){fileName="model.xlsx";}ExcelUtil.objListToExcel(listData, response, request, fileName, startRow,modelURL);}

构建数据

    //构建导出需要的数据private List<List<String>> bulidListData(Map<String, Object> paramMap) {// TODO Auto-generated method stubList<List<String>> listData=new ArrayList<List<String>>();//获取数据List<Application> applications = applicationDao.selectList(paramMap);for (Application application : applications) {List<String> data=new ArrayList<String>();data.add(application.getApplicationNO());data.add(application.getCustomerID() );data.add(application.getGys_borrowsq());data.add(application.getUser_phone() );listData.add(data);}return listData;}

导出的核心代码

 /*** @Description (通过excel模板,导出excel数据)* @author feizhou* @Date 2017年12月14日 下午3:00:52* @version 1.0.0* @param listData* @param response* @param fileName*/public static void objListToExcel(List<List<String>> listData, HttpServletResponse response,HttpServletRequest request, String fileName,Integer startRow,String modelURL) {// 获取项目发布的路径String projectPath = request.getSession().getServletContext().getRealPath("");// 模板文件路径String modelPath = projectPath + modelURL;// Excel2007版本的Excel文件需要使用XSSFWorkbook来读取,如下:XSSFWorkbook wb = getWorkBookGivenFileHandle(modelPath);// 获得当前sheet工作表//默认第一个个XSSFSheet sheet = wb.getSheetAt(0);if (StringUtil.isNotEmpty(wb)) {try {XSSFRow row = null;// 设置内容//获取开始行之后的第一行的所有单元格样式row = sheet.getRow(startRow);XSSFCellStyle rowStyle = row.getRowStyle();short height = row.getHeight();
//                boolean zeroHeight = row.getZeroHeight();
//              row.getint m = listData.get(0).size();List<XSSFCellStyle> listCellStyle=new ArrayList<XSSFCellStyle>();for (int j = 0; j < m; j++) {XSSFCell cell = row.getCell(j);XSSFCellStyle cellStyle = cell.getCellStyle();listCellStyle.add(cellStyle);}//加载数据for (int i = 0; i < listData.size(); i++) {List<String> rowValues = listData.get(i);row = sheet.createRow(i + startRow);row.setRowStyle(rowStyle);row.setHeight(height);for (int j = 0; j < rowValues.size(); j++) {XSSFCell cell = row.createCell(j);String value = rowValues.get(j);boolean isNum = StringUtil.isNum(value);if (isNum) {cell.setCellValue(Double.parseDouble(value));cell.setCellStyle(listCellStyle.get(j));} else {cell.setCellValue(value);cell.setCellStyle(listCellStyle.get(j));}}}//对不同的浏览器下载excel的中文乱码处理String filename =StringUtil.doMessyCode(request, fileName);response.setHeader("Content-Disposition", "attachment; filename=" + filename);OutputStream out = response.getOutputStream();
//                response.reset();//清空输出流  wb.write(out);// 写入Fileout.flush();out.close();} catch (Exception e) {e.printStackTrace();}} else {// 直接抛出异常throw new MyException("找不到对应的模板,所以导不出数据");}}

转载于:https://www.cnblogs.com/feiZhou/p/9343979.html

java 导出数据到excel相关推荐

  1. Java导出数据到Excel文件

    Java导出数据到Excel文件 前言 如何导出 导出的基本流程 测试结果 测试数据及结果 测试代码 ExcelExportUtil.class 遇到的问题 lombok的问题 解决 Cell.set ...

  2. java导出数据到excel表格的最简单实现

    导出excel整理 开发中难免会遇到要导出数据到excel的,网上有很多方法,但是看起来都很复杂的样子,写得又非常多代码,让人望而止步.我做一个简单的导出excel表格功能.这是我在工作上用到的. 1 ...

  3. 使用Java导出数据到Excel

    一.excel数据导出限制 1. Excel 2003及以下的版本.一张表最大支持**65536**行数据,256列.也就是说excel2003完全不可能满足百万数据导出的需求. 2. Excel 2 ...

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

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

  5. Java导出数据到Excel

    https://blog.csdn.net/hjf_1291030386/article/details/75288220

  6. java导出为excel文件_java导出数据到excel文件

    有的时候,将一些有用的数据导出到excel是很有必要的.比如说,我现在在做一个学校的在线教学平台,有一个需求是:将学生成绩导出到excel文件中去. 那怎样实现用java导出数据到excel文件呢?? ...

  7. java导出文件到excel文件怎么打开_Java导出数据到Excel文件

    Java导出数据到Excel文件需要的jar包:easypoi-0.1.3.jar, poi-3.7-20101029 package com.sais.inkaNet.reportStatistic ...

  8. java导数据到Excel

    侵删.不足之处请谅解. 1,Excel导出工具类 package cn.ljs.util;import org.apache.poi.hssf.usermodel.HSSFCell; import o ...

  9. java实现数据的Excel导出, 自定义导出字段, 转换字典值

    java实现数据的Excel导出, 自定义导出字段, 转换字典值 第一版代码: 基础功能跳转此文章java自定义Excel导出工具: 简介 新增功能: 添加自定义字段导出功能, 用户可以选择字段进行导 ...

  10. java 从excel中读取数据_在Java中读取Excel文件的内容和导出数据到Excel文件中

    转自www.chianjavaworld.net 原作者:SonyMusic 读:rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr 在Java ...

最新文章

  1. 06Decorator(装饰)模式
  2. 算法 - 冒泡排序(C#)
  3. android中使用DisplayMetrics获取屏幕参数
  4. 用计算机绘画教学反思,《电脑绘画》教学反思2篇
  5. Django基础三之视图函数
  6. python程序的扩展名是perl程序的扩展名是_Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择...
  7. 127.0.0.1和localhost和本机IP三者的区别
  8. 谷歌翻译API, 免费采集翻译
  9. 计算机 映射网络驱动器,win7电脑映射网络驱动器的方法?
  10. rtt segger 低功耗模式_Segger RTT使用注意事项
  11. OSI七层网络协议(应用层:http协议、传输层:TCP协议、网络层:IP协议,数据链路层:ARP协议、网络下一跳,物理层:比特流)
  12. 2019 最值得被记录的 14 条 AI 安防领袖语录丨年终盘点
  13. 计算机数学基础⑤(Graphs)
  14. java读取文件是乱码_java读取txt文件乱码解决方案
  15. 解决mathtype中集合交并运算符号太矮的问题
  16. 甲骨文CEO拉里-埃里森--硅谷最张扬最具争议的CEO
  17. 【数据分析与挖掘】数据分析学习及实践记录 | part 03-matplotlib常用统计图
  18. 服务器10GE网卡识别失败
  19. Python零基础学习-开课吧
  20. 2021年,薪酬最高的5种编程语言

热门文章

  1. Java判断文件是否为图片
  2. 人工神经网络到底能干什么?到底在干什么?
  3. 博文视点新书样章下载
  4. 主题模型TopicModel:LDA编程实现
  5. mysql8 修改密码_MySQL 8.0 解决:ERROR 2002、ERROR 1045 登陆问题
  6. php pop3,php使用smtp,pop3协议收发邮件代码
  7. 再见了,mover。当打之年,感恩相遇,感恩联汇,感恩一切。
  8. 力扣-876 链表的中间结点
  9. Android 手势放大图片
  10. 7-5 删除字符串中的子串 (20 分)