ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

把List数据导出到excel

2019-11-14 10:11:46  阅读:341  来源: 互联网

标签:key String excel List 导出 put new response tempList


废话不多说 看代码

 //获取城市天气情况
    @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();
    }

 

标签:key,String,excel,List,导出,put,new,response,tempList
来源: https://www.cnblogs.com/liangb/p/11854985.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有