本文主要是介绍多页签导出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.前端js
var datas = actives.getTableSelectedData() if(datas&&datas.length>0){$.each(datas,function (index,value) {window.open(urls.listExport+"?declNo="+value.declNo + "&t="+index);}) }else {view.msg("请至少选择一行数据!") }
2.后台逻辑
@RequestMapping(value = "/list_export") public void ListExport(String declNo,HttpServletResponse response){try {Map<String,Object> data = new HashMap<>();DecHead decHead = decHeadAppService.loadDecHeadByDeclNo(declNo);String ieFlag = decHead.getIeFlag();List<DecList> decLists = decListAppService.listDecListInfoByDeclNo(declNo);data.put("head",decHead);data.put("list",decLists);List<DecContainer> containers = decContainAppService.listDecContainerBydeclNo(declNo);List<DecLicenseDocu> decLicenseDocus = decLicenseDocuAppService.listDecLicenseDocuBydeclNo(declNo);Map<String,Object> containerMap = new HashMap<>();Map<String,Object> docuMap = new HashMap<>();containerMap.put("list",containers);docuMap.put("list",decLicenseDocus);Map<Integer,Map<String,Object>> mapMap = new HashMap<>();mapMap.put(0,data);mapMap.put(1,containerMap);mapMap.put(2,docuMap);/*获取模板路径*/URL url = ResourceUtils.getURL("classpath:exceltemplet/decListExport_"+ieFlag+".xls");FileUtils.downloadTemplates(url.getPath(),mapMap,"报关单明细"+declNo,response);}catch (Exception e){log.error(e.getMessage(),e);e.printStackTrace();} }
3.工具类
public static void downloadTemplates(String path, Map<Integer, Map<String, Object>> map, String fileName, HttpServletResponse response) {try {logger.info("路径:" + path);path = path.replaceAll("%20", " ");/*设置模板路径*/TemplateExportParams params = new TemplateExportParams(path, true);if (map == null) {map = new HashMap<>();}/*加载模板*/Workbook workbook = new ExcleExportUtil().createExcleByTemplate(params, map);/*设置返回表头*/response.setCharacterEncoding("UTF-8");response.setHeader("content-Type", "application/vnd.ms-excel;charset=UTF-8");response.setHeader("Content-Disposition","attachment;filename=" + URLEncoder.encode(fileName + ".xls", "UTF-8"));workbook.write(response.getOutputStream());} catch (Exception e) {e.printStackTrace();}
}
4.excel模板
这篇关于多页签导出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!