思路:使用ajax多次请求服务器,分段生成多个Excel,然后打包压缩成zip,超链接指向下载的文件然后下载。
【JS部分】
function export(){ if(!confirm('导出时间较长,请耐心等待,导出成功前请勿刷新页面!是否继续?')){ return false; } ajaxGetExportData(1); alert('导出成功'); } function ajaxGetExportData(page){ var res = 0; $.ajax({ type: "GET", async: false, url: "/export.php?page="+page, success:function(data){ res = data; } }); if(res == 1){ page++; ajaxGetExportData(page); } return true; }
【PHP部分】
$page = $_GET['page']; if($page <= 3){ $file_path = 'uploads/excel'; if (!file_exists($file_path)) { @mkdir($file_path,0777,true); } $file_name = $file_path . '/' . $page . '.txt'; file_put_contents($file_name,'123'); echo 1; }else{ echo 0; }
最后一步:生成zip文件,参考:https://www.cnblogs.com/kccdzz/p/10273674.html