@RequestMapping(params = "method=export", method = RequestMethod.GET)
public void exportConfig(HttpServletRequest request, HttpServletResponse response,
@RequestParam("dataId") String dataId, @RequestParam("group") String group,
@RequestParam("querymethod") String querymethod ,ModelMap modelMap) {
try{
//根据传过来的dataId和group查出当前页面的配置
Page<ConfigInfo> pageConfigInfo = new Page<ConfigInfo>();
//判断是模糊查询还是查询,querymethod从前端传过来的志只能是findConfigInfoLike或者findConfigInfo,因此querymethod有Like就是模糊查询
if(querymethod.indexOf("Like") > 0 )
pageConfigInfo = this.configService.findConfigInfoLike(MIN_PAGE_NUM, MAX_PAGE_SIZE, group, dataId);
else
pageConfigInfo = this.configService.findConfigInfo(MIN_PAGE_NUM, MAX_PAGE_SIZE, group, dataId);
List<ConfigInfo> listConfigInfo = new ArrayList<ConfigInfo>();
if (null != pageConfigInfo)
listConfigInfo = pageConfigInfo.getPageItems();
//创建文件
String tempfileName = new String(FILE_NAME.getBytes("GBK"), "ISO8859_1");
response.reset();
//设定输出文件头
response.setHeader("Content-disposition", "attachment; filename="+tempfileName);
response.setContentType("application/x-msdownload");
//取得输出流
OutputStream outputStream = response.getOutputStream();
//创建文件
WritableWorkbook writableWorkbook = Workbook.createWorkbook(outputStream);
//创建工作表对象
WritableSheet writableSheet = writableWorkbook.createSheet(DEFAULT_SHEET, 0);
//写入表头
writableSheet.addCell(new Label(0, 0, "dataId"));
writableSheet.addCell(new Label(1, 0, "group"));
writableSheet.addCell(new Label(2, 0, "content"));
//写入数据
if(listConfigInfo!=null && !listConfigInfo.isEmpty()){
for(int i=0; i<listConfigInfo.size(); i++){
writableSheet.addCell(new Label(0, i+1, listConfigInfo.get(i).getDataId()));
writableSheet.addCell(new Label(1, i+1, listConfigInfo.get(i).getGroup()));
writableSheet.addCell(new Label(2, i+1, listConfigInfo.get(i).getContent()));
}
}
writableWorkbook.write();
// 关闭工作簿
writableWorkbook.close();
outputStream.close();
}catch(Exception e)
{
log.error("导出配置出错"+e);
}
}