@RequestMapping(value = "/export")
@ResponseBody
public void takeListExport(HttpServletResponse response, Hotel h, Integer tjkId, Integer pageSize){
String title = "ID,任务名\n";
ByteArrayOutputStream baos = null;
BufferedWriter bw = null;
try {
baos = new ByteArrayOutputStream();
bw = new BufferedWriter(new OutputStreamWriter(baos, "UTF-8"));
baos.write(239); // 0xEF
baos.write(187); // 0xBB
baos.write(191);
bw.write(title);
String fileName = new String(("酒店采集数据").getBytes("GBK"), "ISO8859-1");
response.setHeader("Content-disposition", "attachment; filename=" + fileName + ".csv");// 设定输出文件头
response.setContentType("application/csv");// 定义输出类型
int pageNum = 1;
while(true){
JsonResultBuilder.JsonResult result = this.takeList(h, null, tjkId, pageNum, 200, true);
PageInfo<Hotel> page = (PageInfo<Hotel>) result.getData();
List<Hotel> list = page.getList();
if (CollectionUtils.isEmpty(list)) {
break;
}
for (Hotel data : list) {
StringBuilder sb = new StringBuilder();
sb.append(convertCell2(data.getUniqueId()));
sb.append(convertCell2(data.getHotelName()));
sb.append("\n");
bw.write(sb.toString());
}
pageNum++;
bw.flush();
byte[] data = baos.toByteArray();
response.getOutputStream().write(data);
response.getOutputStream().flush();
baos.reset();
}
} catch (Exception e) {
log.error("#T100 ", e);
} finally {
try {
baos.close();
bw.close();
} catch (IOException e) {
log.error("===exportCsv关闭异常", e);
}
}
}
protected String convertCell2(Object cell) {
if (cell == null)
return ",";
String result1 = cell.toString().replaceAll("=", "");
result1 = result1.replaceAll("\\n", "");
result1 = result1.replaceAll("\n", "");
result1 = result1.replace("\"", "\"\"");
result1 = "\"\t" + result1 + "\"";
return result1 +",";
}