zoukankan      html  css  js  c++  java
  • jxl写入excel实现数据导出功能

    @RequestMapping(params = "method=export", method = RequestMethod.GET)
        public void exportConfig(HttpServletRequest request, HttpServletResponse response,
                @RequestParam("dataId") String dataId, @RequestParam("group") String group,
                @RequestParam("querymethod") String querymethod ,ModelMap modelMap) {
           try{
               //根据传过来的dataId和group查出当前页面的配置
               Page<ConfigInfo> pageConfigInfo = new Page<ConfigInfo>();
               //判断是模糊查询还是查询,querymethod从前端传过来的志只能是findConfigInfoLike或者findConfigInfo,因此querymethod有Like就是模糊查询
               if(querymethod.indexOf("Like") > 0 )
                   pageConfigInfo = this.configService.findConfigInfoLike(MIN_PAGE_NUM, MAX_PAGE_SIZE, group, dataId);
               else
                   pageConfigInfo = this.configService.findConfigInfo(MIN_PAGE_NUM, MAX_PAGE_SIZE, group, dataId);
               List<ConfigInfo> listConfigInfo = new ArrayList<ConfigInfo>(); 
               if (null != pageConfigInfo)
                   listConfigInfo = pageConfigInfo.getPageItems();
               
               //创建文件
               String tempfileName = new String(FILE_NAME.getBytes("GBK"), "ISO8859_1");
               response.reset();
               //设定输出文件头
               response.setHeader("Content-disposition", "attachment; filename="+tempfileName);
               response.setContentType("application/x-msdownload");
               //取得输出流
               OutputStream outputStream = response.getOutputStream();
               //创建文件
               WritableWorkbook writableWorkbook = Workbook.createWorkbook(outputStream);
               //创建工作表对象
               WritableSheet writableSheet = writableWorkbook.createSheet(DEFAULT_SHEET, 0);
               //写入表头
               writableSheet.addCell(new Label(0, 0, "dataId"));
               writableSheet.addCell(new Label(1, 0, "group"));
               writableSheet.addCell(new Label(2, 0, "content"));
               //写入数据
               if(listConfigInfo!=null && !listConfigInfo.isEmpty()){
                   for(int i=0; i<listConfigInfo.size(); i++){
                       writableSheet.addCell(new Label(0, i+1, listConfigInfo.get(i).getDataId()));
                       writableSheet.addCell(new Label(1, i+1, listConfigInfo.get(i).getGroup()));
                       writableSheet.addCell(new Label(2, i+1, listConfigInfo.get(i).getContent()));
                   }
               }
               writableWorkbook.write();
               // 关闭工作簿
               writableWorkbook.close();
               outputStream.close();
           }catch(Exception e)
           {
               log.error("导出配置出错"+e);
           }
        }
  • 相关阅读:
    CF1175B Catch Overflow!
    震惊!一蒟蒻竟然写出fhqTreap
    树上差分
    洛谷 P3128 最大流Max Flow
    线段树的标记永久化/二维线段树模板
    矩阵加速~desire drive
    置换相关
    树形图们
    严格单调递增与非严格之间的转换
    记录延续性的一类dp
  • 原文地址:https://www.cnblogs.com/pwenlee/p/4849483.html
Copyright © 2011-2022 走看看