php – 将数据库中的块保存到xls中
发布时间:2020-12-13 22:54:41 所属栏目:PHP教程 来源:网络整理
导读:我正在使用Krasimir的这段代码将数据从 PHP输出到.xls function xlsBOF() { echo pack("ssssss",0x809,0x8,0x0,0x10,0x0);}function xlSEOF() { echo pack("ss",0x0A,0x00);}function xlsWriteNumber($Row,$Col,$Value) { echo pack("sssss",0x203,14,$Row,0
我正在使用Krasimir的这段代码将数据从
PHP输出到.xls
function xlsBOF() { echo pack("ssssss",0x809,0x8,0x0,0x10,0x0); } function xlSEOF() { echo pack("ss",0x0A,0x00); } function xlsWriteNumber($Row,$Col,$Value) { echo pack("sssss",0x203,14,$Row,0x0); echo pack("d",$Value); } function xlsWriteLabel($Row,$Value) { $L = strlen($Value); echo pack("ssssss",0x204,8 + $L,$L); echo $Value; } // prepare headers information header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment; filename="export_".date("Y-m-d").".xls""); header("Content-Transfer-Encoding: binary"); header("Pragma: no-cache"); header("Expires: 0"); // start exporting xlsBOF(); // first row xlsWriteLabel(0,"id"); xlsWriteLabel(0,1,"name"); xlsWriteLabel(0,2,"email"); // second row xlsWriteNumber(1,230); xlsWriteLabel(1,"John"); xlsWriteLabel(1,"john@yahoo.com"); // third row xlsWriteNumber(2,350); xlsWriteLabel(2,"Mark"); xlsWriteLabel(2,"mark@yahoo.com"); // end exporting xlSEOF(); 它适用于少量数据,但是当我从数据库导出时,例如,大量数据(100.000条记录),我收到服务器超时错误. 如何更改此代码以便我可以逐步向文件中写入小块数据? 目前我正在使用一种仅适用于制表符分隔文件或CSV的方法 我正在.xls文件中写入1000行的块.导出块后,我使用window.location.href = the_script.php?offset = new_offset来调用下一个偏移的脚本,然后再次打开文件并追加下一行1000行. 此方法的问题是Excel输出警告文件格式和扩展名不匹配.该文件可能已损坏或不安全.除非您信任来源,否则请勿打开它.你想打开它吗? 如何为上面的脚本实现类似的功能? 解决方法
增加
time limit for PHP scripts.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |