使用POI完成excel文件导出

使用poi完成excel文件导出以及网页中点击导出,自动下载excel文件

从后端操作,调用接口就可以完成excel文件自动下载。

一、创建一个demo

这里用了list模拟数据,实际业务看需求

 public static void main(String[] args) throws Exception {
    
    

        List list = new ArrayList();
        list.add("标题a");
        list.add("附件名b");
        list.add("年度c");
        list.add("发布人d");
        list.add("发布日期d");
        //标题,一共6个
        String[] cloName = {
    
    "序号", "标题", "附件名", "年度", "发布人", "发布日期"};
        //创建一个工作簿
        XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
        //创建sheet页,并且指定名字
        XSSFSheet sheet = xssfWorkbook.createSheet("部门会议纪要列表");
        //标头行
        XSSFRow header = sheet.createRow(0);
        //遍历数据,写入标题
        for (int i = 0; i < cloName.length; i++) {
    
    
            XSSFCell cell = header.createCell(i);
            cell.setCellValue(cloName[i]);
        }
        //数据写入,这里使用的简单i++方式作为序号自增
        int i = 1;
        for (Object s : list) {
    
    
        //创建行,从最后一行再加一行开始创建
            XSSFRow row = sheet.createRow(sheet.getLastRowNum() + 1);
            //序号
            row.createCell(0).setCellValue(i);
            i++;
            //标题
            row.createCell(1).setCellValue(s.toString());
            //附件名
            row.createCell(2).setCellValue(s.toString());
            //年度
            row.createCell(3).setCellValue(s.toString());
            //发布人
            row.createCell(4).setCellValue(s.toString());
            //发布日期,指定格式
            String time = new SimpleDateFormat("yyyy-MM-dd").format(new Data());
            row.createCell(5).setCellValue(time);
        }
        //excel文件名
        String fileName = "部门会议纪要列表 导出表.xls";
        //输出文件流
        FileOutputStream fileOutputStream = new FileOutputStream(fileName);
        //写入
        xssfWorkbook.write(fileOutputStream);
        //关闭流
        fileOutputStream.close();
        xssfWorkbook.close();
    }

二、使用网页,需要response响应下载

方法中需要有HttpServletResponse response参数作为本次响应;
与上面一致,就是将文件输出流改为response的输出流

        try (OutputStream os = response.getOutputStream();) {
    
    
            fileName = new String(fileName.getBytes(), "ISO8859-1");
            response.setContentType("application/octet-stream;charset=ISO8859-1");
            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
            response.addHeader("Pargam", "no-cache");
            response.addHeader("Cache-Control", "no-cache");
            xssfWorkbook.write(os);
            os.flush();
            xssfWorkbook.close();
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }

结果

会在本地根路径下生成对应的excel文件。
在这里插入图片描述
打开后显示内容:

在这里插入图片描述
到此,结束使用poi操作,完成excel的写出。

猜你喜欢

转载自blog.csdn.net/qq_38653981/article/details/116458072