java导出数据到Excel文件 前端进行下载

本文提供了一个直接的代码示例,展示了如何在Java SpringBoot应用中导出数据到Excel文件,并且前端可以进行下载。通过添加Maven依赖,实现后端导出功能,同时前端在数据导出成功前进行页面处理。
摘要由CSDN通过智能技术生成

通通是干货,直接贴代码

Maven依赖

        <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>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>4.0.1</version>
        </dependency>
    /**
     * 导出宿舍人员信息 Excel文件
     * @param type
     * @param id
     * @param request
     * @param response
     * @return
     * @throws IOException
     */
    @GetMapping("/download/export/student")
    public R setUpExcel(@Param("type") String type, @Param("id") String id, HttpServletRequest request, HttpServletResponse response) throws IOException{
   
        List<RoomPersonnel> roomPersonnelList=roomPersonnelService.getRoomStudent(type, id,LyraUtils.getCompanyId());
     /*   if (ObjectUtil.isNull(roomPersonnelList)||roomPersonnelList.isEmpty()){
            return R.failed("无数据导出");
        }*/
        // 第一步,创建一个webbook,对应一个Excel文件
        HSSFWorkbook wb = new HSSFWorkbook();
        // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet("学生信息");
        // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
        HSSFRow row = sheet.createRow((int) 0);
        // 第四步,创建单元格,并设置值表头 设置表头居中
       // HSSFCellStyle style = wb.createCellStyle();

        wb.setSheetName(0, "宿舍学生信息");
        String[] headers = {
    "学生姓名", "学号","性别","年级","班级","宿舍楼","宿舍号","床位号","入住时间"};
        fo
Java导出大量数据Excel时,可能会因为数据量过大导致前端请求超时。这是由于以下几个原因引起的: 1. 数据量大:导出大量数据需要较长的处理时间和较高的系统资源消耗。如果数据量远远超过前端请求能承受的极限,前端请求时间可能超出设置的时间限制,从而导致超时。 2. 网络传输限制:在数据量较大的情况下,数据的传输时间也会相应增加。如果网络传输速度慢或网络连接不稳定,请求可能会在传输过程中超时。 为了解决这个问题,可以考虑以下几个方案: 1. 分批导出:将大量数据分成小批次进行导出。可以在前端通过多次请求来获取分批次的数据,然后在后台进行数据导出。这样可以避免单次请求时间过长导致的超时问题。 2. 后台异步导出:当前端发起数据导出请求时,后台可以先返回一个任务标识,告知前端任务已经在后台进行处理。后台将数据导出的过程放在一个异步任务中执行,不会阻塞前端请求。前端可以轮询任务状态,直到任务完成并提供下载链接。 3. 压缩文件导出:将导出数据以压缩文件的形式返回给前端,可以减小数据的传输量,加快数据传输速度。前端可以在接收到文件后再进行解压和处理。 4. 前端分页获取:前端可以通过分页的方式获取数据,每次请求只获取一页的数据。这样可以减少单次请求的数据量,降低请求超时的风险。 通过上述方案,可以有效地解决Java导出Excel数据量大导致前端请求超时的问题,提高系统的可用性和用户体验。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值