excel的导出

mac2022-06-30  20

js:           //导出Excel        $('#button_export').on('click', function(e) {            if($('#select_service').val() != 'all'){                exportExcel();            }else{                alert('请选择一个服务!');            }        });                var exportExcel = function(){                        var beginTime;            var endTime;            var url;                        beginTime = $('#reservationtime').val().split(daterange.separator)[0];            endTime = $('#reservationtime').val().split(daterange.separator)[1];                       if (moment(endTime).isBefore(moment(), 'day')) {              url = "svcLogHis/exportExcelInvokeDelay.do";          }else{              url = "svcLog/exportExcelInvokeDelay.do";          }             var param = {                             svcName:$('#select_service').val(),                             beginTime : beginTime,                             endTime:endTime                         };             var strdata = '';             for(var key in param){                 strdata += '&' + key + '=' + param[key];             }             strdata = strdata.substring(1);             window.location.href = url+'?'+strdata;        };        Controller:          @RequestMapping(value = "/exportExcelInvokeDelay.do", method = { RequestMethod.POST, RequestMethod.GET })    public void exportExcelInvokeDelay(HttpServletResponse response,HttpServletRequest request,                                     @RequestParam(value = "svcName", required = true) String svcName,                                     @RequestParam(value = "beginTime", required = true) String beginTime,                                     @RequestParam(value = "endTime", required = true) String endTime){        long begin = 0l;        long end = 0l;        List<EsbServiceLog> data = null;         try {             begin = DateUtil.getTimeFormat().parse(beginTime).getTime();             end = DateUtil.getTimeFormat().parse(endTime).getTime();                          data = serviceLogDao.findLogDelayByConditionInProcess1(svcName, begin, end, 0, 0);             String path = request.getSession().getServletContext().getRealPath("/");             XSSFWorkbook xb = serviceLogDao.exportExcelForInvokeDelayExport(path + "resources/template/InvokeDelay.xlsx", data);             FileOutputStream fileOutputStream = new FileOutputStream(path + "resources/template/download-InvokeDelay-export-" + svcName + ".xlsx");             xb.write(fileOutputStream);             fileOutputStream.close();             String p = path + "/resources/template/download-InvokeDelay-export-" + svcName + ".xlsx";             File file = new File(p);             if (file.exists()) {                 InputStream inputStream = null;                 inputStream = new BufferedInputStream(new java.io.FileInputStream(p));                 String fileName = new String(("调用延迟信息").getBytes("gb2312"), "ISO8859-1") + ".xlsx";                 response.setContentType("application/" + fileName);                 response.setHeader("Content-Disposition", "attachment;" + "filename=" + fileName);                 FileCopyUtils.copy(inputStream, response.getOutputStream());             }         } catch (IOException io) {             io.printStackTrace();             logger.error("文件生成错误 :{}");         } catch (Exception e) {             e.printStackTrace();             logger.error("一些其他的错误 :{}");         }            }        Dao 实现层:             @Override    public XSSFWorkbook exportExcelForInvokeDelayExport(String fileName,            List<EsbServiceLog> data) {        XSSFWorkbook xb = null;        try {            xb = new XSSFWorkbook(new FileInputStream(fileName));        } catch (IOException e) {            e.printStackTrace();        }        XSSFSheet sheet = xb.getSheetAt(0);        int x = 1;        for (EsbServiceLog cln : data) {            XSSFRow row = sheet.createRow(x);            // 服务名            XSSFCell cell0 = row.createCell((short) 0);            cell0.setCellValue(cln.getSvcName());            // 服务别名            XSSFCell cell1 = row.createCell((short) 1);            cell1.setCellValue(cln.getSvcAlias());            // 操作名            XSSFCell cell2 = row.createCell((short) 2);            cell2.setCellValue(cln.getOpName());            // 时间段            XSSFCell cell3 = row.createCell((short) 3);            cell3.setCellValue(cln.getBeginTime());            // 调用次数            XSSFCell cell4 = row.createCell((short) 4);            cell4.setCellValue(cln.getDelayTime());            x++;        }        return xb;    }     

转载于:https://www.cnblogs.com/yanduanduan/p/4441841.html

最新回复(0)