php 数据库保存excel文件,php – 将数据库中的块保存到xls中

我正在使用Krasimir的这段代码将数据从

PHP输出到.xls

function xlsBOF() {

echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);

}

function xlsEOF() {

echo pack("ss", 0x0A, 0x00);

}

function xlsWriteNumber($Row, $Col, $Value) {

echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);

echo pack("d", $Value);

}

function xlsWriteLabel($Row, $Col, $Value) {

$L = strlen($Value);

echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $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, 0, "id");

xlsWriteLabel(0, 1, "name");

xlsWriteLabel(0, 2, "email");

// second row

xlsWriteNumber(1, 0, 230);

xlsWriteLabel(1, 1, "John");

xlsWriteLabel(1, 2, "john@yahoo.com");

// third row

xlsWriteNumber(2, 0, 350);

xlsWriteLabel(2, 1, "Mark");

xlsWriteLabel(2, 2, "mark@yahoo.com");

// end exporting

xlsEOF();

它适用于少量数据,但是当我从数据库导出时,例如,大量数据(100.000条记录),我收到服务器超时错误.

如何更改此代码以便我可以逐步向文件中写入小块数据?

目前我正在使用一种仅适用于制表符分隔文件或CSV的方法

我正在.xls文件中写入1000行的块.导出块后,我使用window.location.href = the_script.php?offset = new_offset来调用下一个偏移的脚本,然后再次打开文件并追加下一行1000行.

此方法的问题是Excel输出警告文件格式和扩展名不匹配.该文件可能已损坏或不安全.除非您信任来源,否则请勿打开它.你想打开它吗?

如何为上面的脚本实现类似的功能?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值