zoukankan      html  css  js  c++  java
  • excel的导出

    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;
        }
         

  • 相关阅读:
    day01--计算机硬件基础笔记
    22 Jun 18 Django,ORM
    21 Jun 18 Django,ORM
    20 Jun 18 复习, mysql
    20 Jun 18 Django,ORM
    19 Jun 18 复习, 正则表达式
    19 Jun 18 Django
    15 Jun 18 复习, shutil模块
    15 Jun 18 Django
    14 Jun 18 复习, form表单
  • 原文地址:https://www.cnblogs.com/yanduanduan/p/4441841.html
Copyright © 2011-2022 走看看