Controller层
@RequestMapping("/exportCsv")
@ResponseBody
public void exportCsv(HttpServletRequest request, HttpServletResponse httpResponse) throws IOException {
List<String> dataList = new ArrayList<String>();
String reportName = "csv-" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")) + ".csv";
try {
dataList.add("1,2,3,4,5,6,7,8");
dataList.add("11,12,13,14,15,16,17,18");
dataList.add("一,二,三,四,五,六,七,八");
} catch (Exception e) {
logger.error("CSV export failure", e);
} finally {
CSVUtils.exportCSV(httpResponse, dataList, reportName);
}
}
util方法
*
* 导出csv方法
* @param response
* @param list
* @param name
*/
public static void exportCSV(HttpServletResponse response, List<String> list, String name) {
try {
response.setContentType("application/csv;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename=" + new String( name.getBytes("gb2312"), "ISO8859-1" ));
String content = "";
for (String l : list) {
content += l + "\r";
}
InputStream inputStream = new ByteArrayInputStream(content.getBytes("UTF-8"));
int len = 0;
byte[] buffer = new byte[1024];
response.setCharacterEncoding("UTF-8");
OutputStream out = response.getOutputStream();
while ((len = inputStream.read(buffer)) > 0) {
out.write(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });
out.write(buffer, 0, len);
}
inputStream.close();
out.close();
} catch (IOException e) {
logger.error("csv export failure"+e);
}
}