springMVC导出 CSV案例
导出csv
第一步 Controller类里调用
OrderParamsVo 传入的参数
orderService.findBuyCSV 查询到要导出的信息
1 /** 2 * 购买订单CSV 3 * OrderParamsVo 传入的参数 4 */ 5 @RequestMapping("findBuyCSV") 6 @ResponseBody 7 public JsonResult findBuyCSV(OrderParamsVo params, HttpServletResponse response) { 8 List<Map<String, Object>> dataList=null; 9 Validator.getInstance().validate(params); 10 List<OrderBo> orderBos = orderService.findBuyCSV(params);// 查询到要导出的信息 11 if (orderBos.size() == 0) { 12 JsonResult.buildFailedResult("无数据导出"); 13 } 14 String sTitle = "投资日期,订单号,姓名,购买产品,金额,状态"; 15 String fName = "buywater_"; 16 String mapKey = "createDate,no,realname,productName,money,state"; 17 dataList = new ArrayList<>(); 18 Map<String, Object> map = null; 19 for (OrderBo order : orderBos) { 20 map = new HashMap<String, Object>(); 21 map.put("createDate", DateFormatUtils.format(order.getCreateDate(), "yyyy/MM/dd HH:mm")); 22 map.put("no", order.getNo()); 23 map.put("realname", order.getUserName()); 24 map.put("productName", order.getProductName()); 25 map.put("money", order.getMoney()); 26 map.put("state", order.getState()); 27 28 dataList.add(map); 29 } 30 try (final OutputStream os = response.getOutputStream()) { 31 ExportUtil.responseSetProperties(fName, response); 32 ExportUtil.doExport(dataList, sTitle, mapKey, os); 33 return null; 34 35 } catch (Exception e) { 36 logger.error("购买CSV失败", e); 37 38 } 39 return JsonResult.buildFailedResult("数据导出出错"); 40 }
第二步:ExportUtil 类 (公用方法) 关键
1 package com.util; 2 3 import java.io.OutputStream; 4 import java.io.UnsupportedEncodingException; 5 import java.net.URLEncoder; 6 import java.text.SimpleDateFormat; 7 import java.util.Date; 8 import java.util.List; 9 import java.util.Map; 10 11 import javax.servlet.http.HttpServletResponse; 12 13 import org.apache.commons.lang3.time.DateFormatUtils; 14 import org.slf4j.Logger; 15 import org.slf4j.LoggerFactory; 16 17 public class ExportUtil { 18 private static final Logger logger = LoggerFactory.getLogger(ExportUtil.class); 19 /** CSV文件列分隔符 */ 20 private static final String CSV_COLUMN_SEPARATOR = ","; 21 22 /** CSV文件列分隔符 */ 23 private static final String CSV_RN = "\r\n"; 24 25 /** 26 * 27 * @param dataList 集合数据 28 * @param colNames 表头部数据 29 * @param mapKey 查找的对应数据 30 * @param response 返回结果 31 */ 32 public static boolean doExport(List<Map<String, Object>> dataList, String colNames, String mapKey, OutputStream os) { 33 try { 34 StringBuffer buf = new StringBuffer(); 35 36 String[] colNamesArr = null; 37 String[] mapKeyArr = null; 38 39 colNamesArr = colNames.split(","); 40 mapKeyArr = mapKey.split(","); 41 42 // 完成数据csv文件的封装 43 // 输出列头 44 for (int i = 0; i < colNamesArr.length; i++) { 45 buf.append(colNamesArr[i]).append(CSV_COLUMN_SEPARATOR); 46 } 47 buf.append(CSV_RN); 48 49 if (null != dataList) { // 输出数据 50 for (int i = 0; i < dataList.size(); i++) { 51 for (int j = 0; j < mapKeyArr.length; j++) { 52 buf.append(dataList.get(i).get(mapKeyArr[j])).append(CSV_COLUMN_SEPARATOR); 53 } 54 buf.append(CSV_RN); 55 } 56 } 57 // 写出响应 58 os.write(buf.toString().getBytes("GBK")); 59 os.flush(); 60 return true; 61 } catch (Exception e) { 62 logger.error("doExport错误...", e); 63 } 64 return false; 65 } 66 67 /** 68 * @throws UnsupportedEncodingException 69 * 70 * setHeader 71 */ 72 public static void responseSetProperties(String fileName, HttpServletResponse response) throws UnsupportedEncodingException { 73 // 设置文件后缀 74 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); 75 String fn = fileName + sdf.format(new Date()).toString() + ".csv"; 76 // 读取字符编码 77 String utf = "UTF-8"; 78 79 // 设置响应 80 response.setContentType("application/ms-txt.numberformat:@"); 81 response.setCharacterEncoding(utf); 82 response.setHeader("Pragma", "public"); 83 response.setHeader("Cache-Control", "max-age=30"); 84 response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fn, utf)); 85 } 86 87 }
导出csv 搞定 。 有问题欢迎提问
偶遇晨光原创
转载于:https://www.cnblogs.com/chenyq/p/5179623.html
springMVC导出 CSV案例相关推荐
- 一篇文章介绍JavaScript 导出 .csv文件
案例代码如下 <!DOCTYPE html> <html lang="en"> <head><meta charset="U ...
- DataSet导出CSV格式(ASP.NET,C#)
DataSet导出CSV格式(ASP.NET,C#) 作者:Not MSN:notking@hotmail.com Email:nots@sohu.com 本文引用下面的 Microsoft ...
- mysql导出csv数据_mysql 导出 csv数据命令
mysql 导出 csv数据命令 导出 select field1,field2,field3 from tablename into outfile '/home/output1.csv' fiel ...
- plsql developer导出csv乱码问题
最近导出csv时出现乱码 问题 自己摸索找到两种解决办法 方法 1 导出csv格式文件 新建excel文件 比如 a.xls excel软件打开 选择菜单数据 -导入外部数据 unicode默认下一 ...
- java 导出csv 格式,java导出csv格式文件的方法
这篇文章主要为大家详细介绍了java导出csv格式文件的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 导出csv格式文件的本质是导出以逗号为分隔的文本数据 imp ...
- Oracle 导出CSV、导出大数据
第一步:创建导出CSV语句 --创建导出语句 CREATE OR REPLACE PROCEDURE SQL_TO_CSV --名称可以自定义(记住导出时使用) (P_QUERY IN VARCHAR ...
- Mysql 导入导出csv 中文乱码问题的解决方法
导出csv: select t1.stid,t1.cateNodeId,t2.name,t1.name from (select p.stid,p.cateNodeId,r.name from Res ...
- Java导入导出CSV文件
场景:导入导出CSV文件 1.CSVUtils类 package com.delta.gddx;import java.io.BufferedReader; import java.io.Buffer ...
- MongoDB导出csv格式数据
第一步: 在cmd中进入mongodb的安装目录下的bin文件夹 C:\Users\zzz>cd C:\Program Files\MongoDB\Server\4.0\bin 第二步: 从Mo ...
最新文章
- 大厂项目是如何死掉的?太过真实!
- 系统集成3月9日作业
- 2019 ICPC 南昌 K. Tree(树上启发式合并,平衡树 treap)
- LaTeX入门第三集!LaTeX的几个应用!
- 德语语言文学考研c1,2015-2016同济大学德语语言文学初试考研经验(下)
- 面试前需要准备的五个步骤
- java isempty_Java ArrayDeque isEmpty()方法与示例
- mysql41 sphinx_抛弃mysql模糊查询,使用sphinx做专业索引
- R语言数据可视化---交互式图表recharts包
- IOS-设置NavigationBar的背景及字体颜色
- 编译器之词法分析器(Lexical Analyzer)
- 如何放大缩小地图 和 移动拖动 地图 (一张的那种,厂区地图非世界地图)
- Excel-甘特图制作
- vue函数定义的多种写法
- 安全管理体系升级 迈动互联获得ISO国际认证
- 大一计算机在线测试,计算机在线测试
- 显卡 1050Ti pytorch 安装
- 每日一道leetcode(python)77. 组合
- 删除Windows11和WIN10桌面图标小箭头
- 驭电之道-用示波器测量电阻的伏安特性曲线 模电实验 示波器 波形