当前位置: 首页 > 游戏攻略 > 如何实现在后台上导出上万条数据并下载

如何实现在后台上导出上万条数据并下载

来源:网络 作者:趣玩小编 发布时间:2024-06-25 15:35:18

客户要求迁出主副表,并要求将某个表的数据导出到Excel。虽然听起来很简单,但实际上,这个表中有上万条数据,而且需要进行关联表查询以获取相关字段,这样导出的表格才能让客户看得明白。

然而,使用Office套件导出这么大量的数据会导致后台内存耗尽,迫使程序停止运行。因此,为了突破百万条数据导出的限制,我们需要另辟蹊径。于是,我们选择了导出CSV文件而不是Excel文件。

为了实现这一目标,我们需要进行以下步骤:

1、设置程序需要一直运行并设置运行内存(php提示过128M)

2、数据查询出需要导出的数据字段(分页)

3、分页进行导出文件并一起合并成压缩包后下载

如果在导出前需要进行某些条件筛选,那么就需要在前端设置表单提交筛选条件,这里就不过多介绍。

在进行导出配置的编写时,需要设置文件路径、名称、表头等基本信息。

在查询数据时,需要进行关联表查询,我们使用了左查询的方式,并通过for循环进行每页的写入文件。

时间戳格式化直接使用了sql语句转换,省去进入循环后再次循环格式化。

需要注意的是,在写入CSV之前需要对字段进行转换为一维数组。

开启了文件句柄后,一定要记得关闭。

到这里就可以将上万条数据导出为CSV文件了。为了减少客户下载时间,我们又进行了对文件压缩,以便客户下载压缩文件。

这里使用的调用方法需要传入参数:文件名。

在生成压缩文件后,我们删除了云服务器中的压缩文件。如果服务器空间允许,可以根据个人选择来删除。如果想要删除服务器中的CSV文件,需要在生成压缩文件后进行删除操作。

在第一个方法的最后添加如下代码:保存文件的路径。

到这里就可以实现客户通过后台进行上万条数据的导出下载功能了。但是有一个弊端,就是需要等待浏览器弹出下载框。所以需要提醒客户耐心等待文件生成。

相关攻略
热门推荐 更多 +
休闲益智 | 945.71MB
我的世界是一款风靡全球的3D第一人称沙盒...
9.6
角色扮演 | 878.96MB
最新版《汉家江湖》是一款以武侠为题材、以...
9.5
飞行射击 | 262.79MB
《荒野乱斗》是快节奏射击类多人对战游戏。...
9.5
飞行射击 | 102.9M
掌上飞车手游app是由腾讯特别为QQ飞车...
9.2
休闲益智 | 263.56MB
开心消消乐是一款轻松休闲的手游,也是一款...
9.6