• SpringBoot--poi导出Excel文件


    1、pom文件添加jar包

    <!--读取excel文件,配置POI框架的依赖-->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.17</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.17</version>
    </dependency>

    2、Excel下载

    方式一:根据模板下载
    /**
         * Excel模板下载
         *
         * @param response
         * @param request
         * @return
         */
        @RequestMapping(value = "/excel2007Export")
        public ResponseEntity<Resource> excel2007Export(HttpServletResponse response, HttpServletRequest request) {
            try {
                ClassPathResource cpr = new ClassPathResource("/templates/student.xlsx");
                InputStream is = cpr.getInputStream();
                Workbook workbook = new XSSFWorkbook(is);
                Sheet sheet = workbook.getSheetAt(0);
                int rowNum = 0;
                Cell cell;
                // 这里作为演示,造几个演示数据,模拟数据库里查数据
                List<String> list = new ArrayList<String>();
                list.add("1111");
                list.add("22");
                list.add("333");
                Row row = sheet.createRow(rowNum + 1);
                for (int i = 0; i < list.size(); i++) {
                    cell = row.createCell(i);
                    cell.setCellValue(list.get(i));
                }
                String fileName = "eeeee.xlsx";
                downLoadExcel(fileName, response, workbook);
    
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return new ResponseEntity<Resource>(HttpStatus.OK);
        }
    
        public static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {
            try {
                response.setCharacterEncoding("UTF-8");
                response.setHeader("content-Type", "application/vnd.ms-excel");
                response.setHeader("Content-Disposition",
                        "attachment;filename="" + URLEncoder.encode(fileName, "UTF-8") + """);
                workbook.write(response.getOutputStream());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    返回结果

     方式二:无需模板下载

    /**
         * Excel下载无需模板
         *
         * @param response
         * @throws UnsupportedEncodingException
         */
        @RequestMapping(value = "/exportExcel", method = {RequestMethod.GET, RequestMethod.POST})
        public void exportExcel(HttpServletResponse response) throws UnsupportedEncodingException {
            String fileName = "导出excel.xlsx";
            response.setContentType("application/excel");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + fileName + ";filename*=utf-8''" + URLEncoder.encode(fileName, "UTF-8"));
            Workbook workbook = new XSSFWorkbook();
            Sheet sheet = workbook.createSheet();
            int rowNum = 0;
            Cell cell;
            Row row = sheet.createRow(rowNum);
            // 添加标题
            String[] headers = {"标题", "版块", "作者", "创建时间", "内容"};
            for (int i = 0; i < headers.length; i++) {
                cell = row.createCell(i);
                cell.setCellValue(headers[i]);
            }
            //添加行
            List<String> list = new ArrayList<String>();
            list.add("111");
            list.add("222");
            list.add("333");
            list.add("4444");
            list.add("555");
            Row row1 = sheet.createRow(rowNum + 1);
            for (int i = 0; i < list.size(); i++) {
                cell = row1.createCell(i);
                cell.setCellValue(list.get(i));
            }
            try {
                workbook.write(response.getOutputStream());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

     返回结果

  • 相关阅读:
    (转载)Centos7 install Openstack Juno (RDO)
    (转载)vmware esxi 6.0 开启嵌套虚拟化
    Delphi XE5 android toast
    delphi中Message消息的使用方法
    delphi中Time消息的使用方法
    Delphi中Interface接口的使用方法
    SystemParametersinfo 用法
    Delphi XE5 android openurl(转)
    Delphi XE5开发Android程序使用自定义字体文件.
    获取 TUniConnection.SpecificOptions默认值和下拉框列表值
  • 原文地址:https://www.cnblogs.com/wangdahui/p/12167211.html
Copyright © 2020-2023  润新知