加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读