把List数据导出到excel

废话不多说 看代码

 //获取城市天气情况
    @ApiOperation(value = "增加采集城市", notes = "添加要采集的天气城市,获取天气情况")
    @GetMapping("/fetchData/exportWeatherInfo/{cityName}")
    public void exportWeatherInfo(@PathVariable("cityName") String cityName, HttpServletRequest request, HttpServletResponse response) throws IOException {
        //采集当前城市数据到库里面
        //
        List<Map<String,Object>>tempList=new ArrayList<>();
        //为了保证key顺序需要用LinkedHashMap
        Map<String,Object>map1=new LinkedHashMap <>();
        map1.put("id","1");
        map1.put("name","lb");
        map1.put("age","13");
        map1.put("sex","man");

        Map<String,Object>map2=new LinkedHashMap <>();
        map2.put("id","2");
        map2.put("name","lb");
        map2.put("age","13");
        map2.put("sex","man");


        tempList.add(map1);
        tempList.add(map2);
        Map<String,Object> tempMap=tempList.get(0);
        Set<String> keySet=tempMap.keySet();
        //创建HSSFWorkbook对象(excel的文档对象)
        HSSFWorkbook wb = new HSSFWorkbook();
        //建立新的sheet对象(excel的表单)
        String reportName= cityName;


        HSSFSheet sheet=wb.createSheet(reportName);

        //在sheet里创建第一行 并设置属性
        HSSFRow row2=sheet.createRow(0);
        int i=0;
        for (String key:keySet) {
            //创建单元格并设置单元格内容
            row2.createCell(i).setCellValue(key);
            i++;
        }
        //设置第二行到最后一行的内容
        int j=1;
        for (Map tempMap1:tempList) {
            HSSFRow row3=sheet.createRow(j);
            //
            int p=0;
            for (String key:keySet) {
                //创建单元格并设置单元格内容
                row3.createCell(p).setCellValue((String) tempMap1.get(key));
                p++;
            }
            j++;
        }

        //输出Excel文件
        response.setContentType("application/vnd.ms-excel;charset=utf-8");
        response.setCharacterEncoding("utf-8");
        Map requestMap=getUserAgent(request);
/*        String newFileName=fileNameUtils.encodeDownloadFilename(reportName,(String) requestMap.get("type"));*/
        String newFileName= new String(reportName.getBytes("GBK"), "iso8859-1");
        response.setHeader("Content-disposition", "attachment;filename="+newFileName+".xls");
        wb.write(response.getOutputStream());
        response.getOutputStream().flush();
        response.getOutputStream().close();
    }

 

posted @ 2019-11-14 09:51  旅行的青蛙  阅读(1420)  评论(0编辑  收藏  举报