源码:http://pan.baidu.com/s/1pLsiXZ1
在线联系:QQ:179061434
pom.xml添加依赖:
CSV导出
importdemo.spring.mybatis.config.ExportUtil;
importdemo.spring.mybatis.model.UserModel;
importdemo.spring.mybatis.service.DemoService;
importorg.apache.commons.lang3.time.DateFormatUtils;
importorg.apache.poi.hssf.usermodel.*;
importorg.apache.poi.hssf.util.HSSFColor;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.scheduling.annotation.Scheduled;
importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.RestController;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjava.io.IOException;
importjava.io.OutputStream;
importjava.lang.reflect.Field;
importjava.lang.reflect.InvocationTargetException;
importjava.lang.reflect.Method;
importjava.text.SimpleDateFormat;
importjava.util.*;
@RequestMapping("/csv")
publicStringfindBuyCSV(HttpServletResponse response) {
List> dataList =null;
List userModels =demoservice.getAll();// 查询到要导出的信息
if(userModels.size() ==0) {
System.out.println("无数据导出");
}
String sTitle ="ID,姓名,年龄,密码,邮箱";
String fName ="buywater_";
String mapKey ="id,name,age,password,email";
dataList =newArrayList<>();
Map map =null;
for(UserModel user : userModels) {
map =newHashMap();
map.put("id",user.getId() );
map.put("name",user.getName());
map.put("age",user.getAge());
map.put("password",user.getPassword());
map.put("email",user.getEmail());
dataList.add(map);
}
try(finalOutputStream os = response.getOutputStream()) {
ExportUtil.responseSetProperties(fName,response);
ExportUtil.doExport(dataList,sTitle,mapKey,os);
return null;
}catch(Exception e) {
System.out.println(e);
}
return"数据导出出错";
}
有一个配置文件:
packagedemo.spring.mybatis.config;
importjava.io.OutputStream;
importjava.io.UnsupportedEncodingException;
importjava.net.URLEncoder;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjava.util.List;
importjava.util.Map;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.commons.lang3.time.DateFormatUtils;
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
public classExportUtil {
private static finalLoggerlogger= LoggerFactory.getLogger(ExportUtil.class);
/**
* CSV文件列分隔符
*/
private static finalStringCSV_COLUMN_SEPARATOR=",";
/**
* CSV文件列分隔符
*/
private static finalStringCSV_RN="\r\n";
/**
*@paramdataList集合数据
*@paramcolNames表头部数据
*@parammapKey查找的对应数据
*@paramresponse返回结果
*/
public static booleandoExport(List> dataList,String colNames,String mapKey,OutputStream os) {
try{
StringBuffer buf =newStringBuffer();
String[] colNamesArr =null;
String[] mapKeyArr =null;
colNamesArr = colNames.split(",");
mapKeyArr = mapKey.split(",");
// 完成数据csv文件的封装
// 输出列头
for(inti =0;i < colNamesArr.length;i++) {
buf.append(colNamesArr[i]).append(CSV_COLUMN_SEPARATOR);
}
buf.append(CSV_RN);
if(null!= dataList) {// 输出数据
for(inti =0;i < dataList.size();i++) {
for(intj =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;
}
/**
*@throwsUnsupportedEncodingException setHeader
*/
public static voidresponseSetProperties(String fileName,HttpServletResponse response)throwsUnsupportedEncodingException {
// 设置文件后缀
SimpleDateFormat sdf =newSimpleDateFormat("yyyyMMddHHmmss");
String fn = fileName + sdf.format(newDate()).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));
}
}
####指导qq:179061434