就写两个方法。
@Log
@ApiOperation(value = "导出单码/箱码",produces = "application/octet-stream")
@GetMapping(value = "/export")
public void exportExcel(TraceBatchPageQuery page HttpServletResponse response){
Page<TraceBatchDto> pages = traceBatchService.pageByParam(page);
if (page.getRecords().size()==0)
throw new BusinessException("数据为空");
for(TraceBatchDto dto:pages.getRecords()){
if (type==0)
text.append(dto.getQuantity());
else
text.append(dto.getPackQuantity());
text.append("\r\n");//换行字符
}
//导出的文件存储目录
ExportUtil.exportTxt(response,text.toString());
}
/* 导出txt文件
* @author
* @param response
* @param text 导出的字符串
* @return
*/
public static void exportTxt(HttpServletResponse response, String text,String name){
response.setCharacterEncoding("utf-8");
//设置响应的内容类型
response.setContentType("text/plain");
//设置文件的名称和格式
response.addHeader("Content-Disposition","attachment;filename="
+ "data.txt");
BufferedOutputStream buff = null;
ServletOutputStream outStr = null;
try {
outStr = response.getOutputStream();
buff = new BufferedOutputStream(outStr);
buff.write(text.getBytes("UTF-8"));
buff.flush();
buff.close();
} catch (Exception e) {
//LOGGER.error("导出文件文件出错:{}",e);
} finally {try {
buff.close();
outStr.close();
} catch (Exception e) {
//LOGGER.error("关闭流对象出错 e:{}",e);
}
}
}