excel多sheet导出

   /**
     * excel多sheet导出
     */
    public void exportSheetUsers () {
  
        List <GysuserAndagentVo> users=new ArrayList <> ();

        List <GysexcelAgents> agents=new ArrayList <> ();
        //功能描述:把同一个表格多个sheet测试结果重新输出,
        Workbook workBook=null;
        try {
            // 创建参数对象(用来设定excel的sheet1内容等信息)
            ExportParams userExportParams=new ExportParams ( );
            // 设置sheet得名称
            userExportParams.setSheetName ( "用户表" );
            // 设置sheet表头名称
            userExportParams.setTitle ( "用户列表" );
            // 创建sheet1使用得map
            Map <String, Object> userExportMap=new HashMap <> ( );
            // title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName
            userExportMap.put ( "title", userExportParams );
            // 模版导出对应得实体类型
            userExportMap.put ( "entity", GysuserAndagentVo.class );
            // sheet1中要填充得数据
            userExportMap.put ( "data", users );
            // 创建参数对象(用来设定excel的sheet2内容等信息)
            ExportParams logInfoExportParams=new ExportParams ( );
            logInfoExportParams.setTitle ( "关系表" );
            logInfoExportParams.setSheetName ( "关系" );
            // 创建sheet2使用的map
            Map <String, Object> logInfoExportMap=new HashMap <> ( );
            logInfoExportMap.put ( "title", logInfoExportParams );
            logInfoExportMap.put ( "entity", GysexcelAgents.class );
            // sheet2中要填充得数据
            logInfoExportMap.put ( "data", agents );
            // 将sheet1、sheet2使用得map进行包装
            List <Map <String, Object>> sheetsList=new ArrayList <> ( );
            //后续增加sheet组,则后面继续追加即可;
            sheetsList.add ( userExportMap );
            sheetsList.add ( logInfoExportMap );
            // 执行方法
            workBook=ExcelExportUtil.exportExcel ( sheetsList, ExcelType.HSSF );
            String path1=path + "/excel/" ;
            String fillname=userCode + euuid + ".xlsx";
            File myPath = new File(path1);
            log.info ( "文件夹路径:"+path1+fillname );
            if ( !myPath.exists()){//若此目录不存在,则创建之// 这个东西只能简历一级文件夹,两级是无法建立的。。。。。
                boolean mkdir=myPath.mkdir ( );
                log.info("创建文件夹路径为:"+ path1+fillname);
            }
            FileOutputStream out=new FileOutputStream ( path1+fillname );
            workBook.write ( out );
            workBook.close ( );
        } catch (Exception e) {
            e.printStackTrace ( );
        } finally {
            if (workBook != null) {
                try {
                    //强行关流
                    workBook.close ( );
                } catch (IOException e) {
                    e.printStackTrace ( );
                }
            }
        }
    }

        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-spring-boot-starter</artifactId>
            <version>4.4.0</version>
        </dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
EasyPoi是一款基于POI封装的Java Excel工具类库,它提供了丰富的功能和易用性的API,可以帮助我们快速、方便地实现Excel的读写操作。 如果要使用EasyPoi实现多Sheet导出,可以按照以下步骤进行: 1. 定义数据模型类,用于存储每个Sheet的数据。 2. 在Controller中创建Workbook对象,用于生成Excel文件。 3. 调用EasyPoi提供的API,将数据填充到Workbook对象中的每个Sheet中。 4. 将Workbook对象写入到输出流中,即可实现Excel文件的导出。 下面是一个简单的示例代码: ```java // 定义数据模型类 public class User { private String name; private int age; // getter和setter方法... } // 在Controller中创建Workbook对象 @RequestMapping("/export") public void export(HttpServletResponse response) { Workbook workbook = new HSSFWorkbook(); // 创建Sheet1并填充数据 List<User> userList1 = userService.getUserList1(); Sheet sheet1 = workbook.createSheet("Sheet1"); // 向Sheet1中填充数据 // ... // 创建Sheet2并填充数据 List<User> userList2 = userService.getUserList2(); Sheet sheet2 = workbook.createSheet("Sheet2"); // 向Sheet2中填充数据 // ... // 将Workbook对象写入输出流中 response.setContentType("application/octet-stream"); response.setHeader("Content-disposition", "attachment;filename=export.xls"); response.flushBuffer(); workbook.write(response.getOutputStream()); } ``` 在上面的示例中,我们通过调用Workbook对象的createSheet方法创建了两个Sheet,并向每个Sheet中填充了一些数据。最后,我们将Workbook对象写入到输出流中,实现Excel文件的导出。 需要注意的是,如果要使用EasyPoi实现多Sheet导出,需要使用HSSFWorkbook类来创建Workbook对象,因为XSSFWorkbook类不支持多Sheet导出。如果需要导出大量数据,可以考虑使用SXSSFWorkbook类,它可以在内存中缓存数据,避免内存溢出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值