springMVC导出 CSV案例
来源:互联网 发布:文档编辑软件 编辑:程序博客网 时间:2024/06/06 01:38
转自:http://www.cnblogs.com/chenyq/p/5179623.html
contorller
/**
* 购买订单CSV
* OrderParamsVo 传入的参数
*/
@RequestMapping("findBuyCSV")
@ResponseBody
public JsonResult findBuyCSV(OrderParamsVo params, HttpServletResponse response) {
List<Map<String, Object>> dataList=null;
Validator.getInstance().validate(params);
List<OrderBo> orderBos = orderService.findBuyCSV(params);// 查询到要导出的信息
if (orderBos.size() == 0) {
JsonResult.buildFailedResult("无数据导出");
}
String sTitle = "投资日期,订单号,姓名,购买产品,金额,状态";
String fName = "buywater_";
String mapKey = "createDate,no,realname,productName,money,state";
dataList = new ArrayList<>();
Map<String, Object> map = null;
for (OrderBo order : orderBos) {
map = new HashMap<String, Object>();
map.put("createDate", DateFormatUtils.format(order.getCreateDate(), "yyyy/MM/dd HH:mm"));
map.put("no", order.getNo());
map.put("realname", order.getUserName());
map.put("productName", order.getProductName());
map.put("money", order.getMoney());
map.put("state", order.getState());
dataList.add(map);
}
try (final OutputStream os = response.getOutputStream()) {
ExportUtil.responseSetProperties(fName, response);
ExportUtil.doExport(dataList, sTitle, mapKey, os);
return null;
} catch (Exception e) {
logger.error("购买CSV失败", e);
}
return JsonResult.buildFailedResult("数据导出出错");
}
工具类
package com.util;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ExportUtil {
private static final Logger logger = LoggerFactory.getLogger(ExportUtil.class);
/** CSV文件列分隔符 */
private static final String CSV_COLUMN_SEPARATOR = ",";
/** CSV文件列分隔符 */
private static final String CSV_RN = "\r\n";
/**
*
* @param dataList 集合数据
* @param colNames 表头部数据
* @param mapKey 查找的对应数据
* @param response 返回结果
*/
public static boolean doExport(List<Map<String, Object>> dataList, String colNames, String mapKey, OutputStream os) {
try {
StringBuffer buf = new StringBuffer();
String[] colNamesArr = null;
String[] mapKeyArr = null;
colNamesArr = colNames.split(",");
mapKeyArr = mapKey.split(",");
// 完成数据csv文件的封装
// 输出列头
for (int i = 0; i < colNamesArr.length; i++) {
buf.append(colNamesArr[i]).append(CSV_COLUMN_SEPARATOR);
}
buf.append(CSV_RN);
if (null != dataList) { // 输出数据
for (int i = 0; i < dataList.size(); i++) {
for (int j = 0; j < mapKeyArr.length; j++) {
buf.append(dataList.get(i).get(mapKeyArr[j])).append(CSV_COLUMN_SEPARATOR);
}
buf.append(CSV_RN);
}
}
// 写出响应
os.write(buf.toString().getBytes("GBK"));
os.flush();
return true;
} catch (Exception e) {
logger.error("doExport错误...", e);
}
return false;
}
/**
* @throws UnsupportedEncodingException
*
* setHeader
*/
public static void responseSetProperties(String fileName, HttpServletResponse response) throws UnsupportedEncodingException {
// 设置文件后缀
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String fn = fileName + sdf.format(new Date()).toString() + ".csv";
// 读取字符编码
String utf = "UTF-8";
// 设置响应
response.setContentType("application/ms-txt.numberformat:@");
response.setCharacterEncoding(utf);
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "max-age=30");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fn, utf));
}
}
- springMVC导出 CSV案例
- SpringMVC 导出Excel案例
- springMVC中导出excel案例
- SpringMVC导出CSV文件中文出现乱码解决方案
- csv.js导出csv
- CSV 导出
- 导出csv
- 导出csv
- csv 导出
- SpringMVC从数据库导入导出 CSV文件(利用multipart/form-data实现文件上传)
- csv文件导出
- php导出CSV方法
- 导出CSV EXCEL
- php导出CSV方法
- JAVA 导出CSV代码
- dataset 导出 csv
- 导出CSV格式
- php导出csv,xls
- hibernate插入中文到MySQL乱码问题
- Swift3.0 split函数切割字符串
- TDBChart 用法
- SpringMVC执行的流程
- nbtstat命令查询对方计算机名称
- springMVC导出 CSV案例
- 【LeetCode】463. Island Perimeter
- 可加速的高斯滤波技术
- 同一台机器上面创建多个tomcat服务,同时启动 同时使得可以开机自动启动
- 做了一个js-function类型的思维导图
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 基于ssm框架的绩效管理系统
- Struts2框架学习记录1
- Spring Validation Example – Spring MVC Form Validator