package com.sysware.task.util;import org.apache.poi.hssf.usermodel.*;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServletResponse;import java.io.*;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import java.util.Map;/** * 导出文件工具类 */public class ExportFileUtil { /** * 导出统计详情EXCEL */ public static void exportDetailExcel(List
后端调用
/** * 导出统计详情数据 * * @param params 查询任务详情参数集合 */ @RequestMapping(value = "exportDetailData/{params}", method = RequestMethod.GET) public void exportDetailData(@PathVariable String params, HttpServletResponse response) { try { // 解码、转Map Map queryParams = JSON.parseObject(URLDecoder.decode(params, "UTF-8")); // 获取任务详情数据 List > list = getStatisticsTaskDetailData("exportType", queryParams); // 导出EXCEL ExportFileUtil.exportDetailExcel(list, response); } catch (Exception e) { e.printStackTrace(); } }
前端调用
// 导出任务点击事件 $("#detailExport").bind("click", function () { var params = { "queryType": "<%=queryType%>", "chargeDepartmentId": "<%=chargeDepartmentId%>", "projectId": "<%=projectId%>", "statusId": "<%=statusId%>", "folderType": "<%=folderType%>", "modelId": "<%=modelId%>", "createDepartmentId": "<%=createDepartmentId%>", "creatorId": "<%=creatorId%>", "chargeManId": "<%=chargeManId%>", "planStartTime0": "<%=planStartTime0%>", "planStartTime1": "<%=planStartTime1%>", "planEndTime0": "<%=planEndTime0%>", "planEndTime1": "<%=planEndTime1%>", "actualStartTime0": "<%=actualStartTime0%>", "actualStartTime1": "<%=actualStartTime1%>", "actualEndTime0": "<%=actualEndTime0%>", "actualEndTime1": "<%=actualEndTime1%>" }; window.location.href = basePath + "/task/businessProjectStatistics/exportDetailData/" + encodeURI(encodeURI(JSON.stringify(params)))+".action"; });
remark
1.AJAX调用方法不会弹下载EXCEL窗口,所以选择了window.location.href调用方式2.window.location.href调用方式在数据传输的时候会乱码,所以用了加密方法