当前位置: 首页 > wzjs >正文

南部县建设局网站成都高速公路网站建设招标

南部县建设局网站,成都高速公路网站建设招标,十大app排行榜,初中生电脑作业做网站以下是使用 EasyExcel 工具类实现异步导出功能的 Demo,包括用户发起导出请求后,系统先返回响应,后台读取数据并上传至 COS,最后通知用户下载的完整流程。 实现步骤 用户发起导出请求 前端调用导出接口,后端立即返回响应…

以下是使用 EasyExcel 工具类实现异步导出功能的 Demo,包括用户发起导出请求后,系统先返回响应,后台读取数据并上传至 COS,最后通知用户下载的完整流程。


实现步骤

  1. 用户发起导出请求

    • 前端调用导出接口,后端立即返回响应,表示导出任务已开始。
  2. 后台异步处理

    • 使用线程池异步执行数据读取、Excel 生成及上传至 COS 的操作。
  3. 上传至 COS

    • 使用腾讯云 COS SDK 将生成的 Excel 文件上传至 COS。
  4. 通知用户下载

    • 上传完成后,通过消息通知(如邮件、站内信)告知用户下载链接。

代码实现

1. 依赖引入

pom.xml 中添加以下依赖:

<!-- EasyExcel -->
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version>
</dependency><!-- 腾讯云 COS SDK -->
<dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.6.54</version>
</dependency><!-- Spring Boot Web -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><!-- Spring Boot Async -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-async</artifactId>
</dependency>

2. 实体类

定义 Excel 导出的数据模型:

@Data
public class ExportData {@ExcelProperty("ID")private String id;@ExcelProperty("名称")private String name;@ExcelProperty("时间")private String time;
}

3. 异步导出服务

实现异步导出逻辑:

@Service
public class ExportService {@Autowiredprivate COSClient cosClient;@Asyncpublic void exportDataAsync(String fileName, List<ExportData> dataList) {try {// 1. 生成 Excel 文件File file = new File(fileName);EasyExcel.write(file, ExportData.class).sheet("Sheet1").doWrite(dataList);// 2. 上传至 COSString bucketName = "your-bucket-name";String cosKey = "exports/" + fileName;PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, cosKey, file);cosClient.putObject(putObjectRequest);// 3. 通知用户下载String downloadUrl = "https://" + bucketName + ".cos.ap-guangzhou.myqcloud.com/" + cosKey;notifyUser(downloadUrl);// 4. 删除本地临时文件file.delete();} catch (Exception e) {e.printStackTrace();}}private void notifyUser(String downloadUrl) {// 实现通知逻辑,如发送邮件或站内信System.out.println("导出完成,下载链接:" + downloadUrl);}
}

4. 控制器

提供导出接口:

@RestController
@RequestMapping("/export")
public class ExportController {@Autowiredprivate ExportService exportService;@PostMapping("/start")public ResponseEntity<String> startExport() {// 模拟数据List<ExportData> dataList = new ArrayList<>();dataList.add(new ExportData("1", "测试1", "2023-10-01"));dataList.add(new ExportData("2", "测试2", "2023-10-02"));// 异步导出String fileName = "export_data_" + System.currentTimeMillis() + ".xlsx";exportService.exportDataAsync(fileName, dataList);// 立即返回响应return ResponseEntity.ok("导出任务已开始,请稍后查看下载链接。");}
}

5. 配置异步支持

在 Spring Boot 启动类上添加 @EnableAsync 注解:

@SpringBootApplication
@EnableAsync
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

6. 腾讯云 COS 配置

application.properties 中配置 COS 信息:

cos.secretId=your-secret-id
cos.secretKey=your-secret-key
cos.region=ap-guangzhou
cos.bucketName=your-bucket-name

初始化 COSClient

@Configuration
public class COSConfig {@Value("${cos.secretId}")private String secretId;@Value("${cos.secretKey}")private String secretKey;@Value("${cos.region}")private String region;@Beanpublic COSClient cosClient() {COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);ClientConfig clientConfig = new ClientConfig(new Region(region));return new COSClient(cred, clientConfig);}
}

测试流程

  1. 启动 Spring Boot 应用。
  2. 调用导出接口:POST /export/start
  3. 查看控制台日志,获取下载链接。
  4. 下载生成的 Excel 文件。

总结

通过以上代码,实现了以下功能:

  1. 用户发起导出请求后,系统立即返回响应。
  2. 后台异步读取数据并生成 Excel 文件。
  3. 将 Excel 文件上传至腾讯云 COS。
  4. 通知用户下载链接。

希望这个 Demo 对你有帮助!如果有其他问题,欢迎随时提问。 😊

http://www.dtcms.com/wzjs/585374.html

相关文章:

  • 建一个网站需要做什么的呼伦贝尔建设网站
  • 网站开发技术有网页设计网站设计欣赏
  • 网站设计技巧苏州做网站费用明细
  • 图片瀑布流网站模板网站备案 排名影响
  • h5免费制作网站有哪些中国十大采购平台app
  • 成都哪家做网站最好网站开发的意义和作用
  • wordpress手机菜单导航代码外贸seo是什么意思啊
  • 外贸网站源码免费蓝色 宽屏 网站 模板
  • 二级学院网站建设自评报告在线手机网站建设
  • 营销网站建设推广网页 网站 站点的区别
  • 网站建设 项目书 框架网站运营费用预算
  • 免费做网站排名wordpress例行维护
  • 一流的南京网站建设宝塔装wordpress
  • 网站开发维护合同书江苏省住房和建设厅网站首页
  • 制作一号店网站公司装修怎么做账
  • 公司网站建设外包流程图南宁手机网站建设
  • 网站优化文档网站建设部门管理制度
  • 做词云的网站昆山建设工程交易网站
  • 网站优化建设公司宣讲网站建设
  • 鄂尔多斯做网站开封市住房和城乡建设局
  • 设计企业网站主页图片wordpress 仿站步骤
  • wordpress 目录排序模板网站可以优化吗
  • 温州网站开发培训玩具外贸网站
  • 网站建设知名企业石家庄百度seo
  • 代做毕业设计网站现成双流网站建设
  • 瑞安专业网站建设响应式网页设计图
  • 为什么要用模板建站?广州企业网站排名
  • php简易企业网站源码手机购物网站设计
  • 网易企业邮箱后缀是多少南昌seo站外优化
  • 旅游网站设计参考文献古焰传奇