大数据量Excel导出解决思路
最近几天遇到一个问题,需要将大量的数据导出为excel,但是数据量过大,导致请求超时,以下是我想到的几种解决方案,权当参考吧。
客户端生成Excel
步骤
后端接口查询到数据后直接返回,不进行任何操作。
由前端生成Excel文件。
优点
后端不需要进行Excel处理,节省了响应时间和算力。
缺点
格式化后的excel文件往往比json的体积小得多,因此可能需要更多的带宽。
注意事项
在测试的时候发现,不同的插件生成的excel文件的大小有很大差异。我的测试数据有19w条,不同的插件生成的文件大小如下:
apache-poi(java) 5.6MB
xlsx(js) 50MB
exceljs 4.6MB
分离Excel文件生成和下载操作
步骤
1.前端发起请求后,后端异步查询数据,生成Excel文件。
2.前端查询生成的Excel文件。
优点
请求的时间将会很短,不用担心请求超时
缺点
实现起来比较麻烦
需要更多的磁盘空间
需要处理生成的文件
延长超时时间
步骤
1.前端请求时,设置一个较长的超时时间
2.后端处理完成后返回
优点
处理起来比较简单
缺点
请求等待时间过长
服务器性能消耗严重
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 逻辑猫
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果