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模板



本文介绍了一个使用前端JavaScript从表格中选择数据并触发后台数据导出至Excel的功能实现。具体步骤包括:前端通过JavaScript获取选中的表格数据,然后逐个打开带有参数的导出链接;后端接收请求,根据提供的申报编号加载相应的头部信息和详细列表,并将数据填充到Excel模板中,最终下载为Excel文件。
1550

被折叠的 条评论
为什么被折叠?



