首页 > 其他分享 >easy excel 分页查询数据并上传文件服务器返回链接

easy excel 分页查询数据并上传文件服务器返回链接

时间:2023-04-07 11:57:34浏览次数:57  
标签:ObsClient excel System 服务器返回 easy println null out

背景

之前看到公司的excel下载是先分页查询再上传到obs(华为云服务器),最后返回链接的,最近在学习easy excel特意记录一下。

目的

实现easy excel 分页查询数据并上传文件服务器返回链接

参考链接

这里

实现代码

点击查看代码
@GetMapping("downloadOssUrl")
    @ResponseBody
    public HeaderResponse downloadOssUrl(HttpServletResponse response) throws IOException {
        String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
        File file = new File( fileName+ ".xlsx");
        FileOutputStream fileOutputStream=null;
        try {
            fileOutputStream = new FileOutputStream(file);
        } catch (FileNotFoundException e) {
            System.out.println("文件找不到异常");
            return null;
        }
                try (
                ExcelWriter excelWriter = EasyExcel.write(fileName, DownloadData.class).build()) {
            // 这里注意 如果同一个sheet只要创建一次
            WriteSheet writeSheet = EasyExcel.writerSheet("模板").build();
            // 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来
            for (int i = 0; i < 5; i++) {
                // 分页去数据库查询数据 这里可以去数据库查询每一页的数据
                List<DownloadData> data = data();
                excelWriter.write(data, writeSheet);
            }

        }

// 文件上传到oss
        FileInputStream fileInputStream = new FileInputStream(file);
        ObsClient obsClient = null;
        HeaderResponse response1=null;
        try {
            String endPoint = "http://obs.cn-east-3.myhuaweicloud.com";
            String ak = "";
            String sk = "";
            // 创建ObsClient实例
            obsClient = new ObsClient(ak, sk, endPoint);
            // 调用接口进行操作,例如上传对象
             response1 = obsClient.putObject("dev-test-obs", "测试.xlsx", fileInputStream);  // localfile为待上传的本地文件路径,需要指定到具体的文件名
            System.out.println(response1);
        } catch (ObsException e) {
            System.out.println("HTTP Code: " + e.getResponseCode());
            System.out.println("Error Code:" + e.getErrorCode());
            System.out.println("Error Message: " + e.getErrorMessage());

            System.out.println("Request ID:" + e.getErrorRequestId());
            System.out.println("Host ID:" + e.getErrorHostId());
        } finally {
            // 关闭ObsClient实例,如果是全局ObsClient实例,可以不在每个方法调用完成后关闭
            // ObsClient在调用ObsClient.close方法关闭后不能再次使用
            if (obsClient != null) {
                // obsClient.close();
            }
        }
        
        // 上传完成后删除本地文件
        file.delete();
        
        return response1;
    }

测试一下

请求调用:http://127.0.0.1:8000/downloadOssUrl

存在问题

代码执行完成发现项目目录下有一个excel,这个是很没有必要的

修复方案

后续更新

标签:ObsClient,excel,System,服务器返回,easy,println,null,out
From: https://www.cnblogs.com/cj8357475/p/17295698.html

相关文章

  • 支持多种文件(docx、excel、pdf)预览的vue组件库,支持vue2/3。
    原文链接https://github.com/501351981/vue-office 功能特色一站式:提供docx、pdf、excel多种文档的在线预览方案,有它就够了简单:只需提供文档的src(网络地址)即可完成文档预览体验好:选择每个文档的最佳预览方案,保证用户体验和性能都达到最佳状态安装#docx文档预览组件......
  • 利用ExcelJS读取Excel文件
    参考文档https://blog.csdn.net/qq_41374651/article/details/115663014https://blog.csdn.net/qiuliaiali123/article/details/104392662https://www.jianshu.com/p/fc96e22c4df1最终效果代码<template><divclass="test"><inputtype="......
  • 》》》导出excel数据接口,调用分页查询接口数据方法
    需求:导出excel数据接口,调用分页查询接口数据方法,这样共用一个业务逻辑,可以使导出数据和查询的数据保持一致,不必再重新写导出的查询逻辑1//分页列表2@GetMapper("/pageList")3publicIpage<UserVo>pageList(IntegerpageNum,IntegerpageSize,UserVoentity){4......
  • 高德地图搜索结果如何导出成excel里?
    地图搜索左边查询的商家如何导出到EXCEL里?解决销售人员一个一个从地图上翻找复制客户信息的低下效率、销售人员就应该专心去做他们擅长的业务营销!经过一段时间的琢磨,经过长时间的反复测试,做出了导出地图商家电话到EXCEL里的系统  操作步骤:1.选择你要采集的省份,城市列表......
  • 地图商家电话采集,导出EXCEL
    前段时间,根据朋友的要求,开发了地图里的商家采集工具。地图商家如何导出?电话如何导出EXCEL?现在很多做销售工作的思路都开阔了,从地图上直接找商家推销。但是普遍反映一个一个从地图上翻找客户效率比较低。如何让销售人员专心去做他们擅长的业务营销呢?经过一段时间的琢磨,经过长......
  • (转)使用 Golang 创建和读取 Excel 文件
    原文:https://juejin.cn/post/7117578016858849293摘要本文提出一种使用Golang进行Excel文件创建和读取的方案。首先对问题进行分析,引出方案的基本架构;然后分章节描述了Excelize基础库的基本用法,以及Excel数据在Golang中的表示和解析方式,并进一步提出了应对大规模数......
  • EasyNVR运行一段时间后出现停止现象是什么原因?如何解决?
    EasyNVR平台优秀的视频能力在于通过RTSP/ONVIF协议,将前端接入设备的音视频资源进行采集,并转码成适合全平台、全终端分发的视频流格式,包括RTMP、RTSP、FLV、HLS、WebRTC等格式。有用户反馈,在使用EasyNVR时,运行了一会就会出现停止的现象,导致无法正常使用。针对用户反馈,我们立即进行了......
  • AI智慧工地视频融合平台EasyCVR视频调阅模块一键播放功能优化
    EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海康SDK、大华SDK等(具体见下图),能对外分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流,在视频能力上,具备视频实时监控、视频录像、云存储、......
  • AI智能视频融合平台EasyCVR新增功能:支持普通用户收藏通道
    EasyCVR平台可在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。平台可支持多协议、多类型的设备接入,可覆盖市面上绝大多数的视频源设备,包括:IPC、NVR、视频编码器、移动执法仪、应急布控球、移动警用......
  • 【技术教程】在EasyCVR平台中打开第三方桌面端应用的实现过程
    EasyCVR视频融合平台基于云边端协同架构,具有强大的数据接入、处理及分发能力,平台支持海量视频汇聚管理,可支持多协议接入,包括市场主流标准协议与厂家私有协议及SDK,如:国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、宇视SDK等(具体见下图)。平台能在复杂的网络环境中,将分散的各......