用php把数据库的表导出成excel或csv,并要求每页最多显示5万数据

如题:

我在网上找了很多资料,发现有些使用扩展文件,但又没有清楚说明怎么使用,有些又没有分页效果

所以希望在这里能有人帮帮忙,谢谢

阅读 2.4k
3 个回答

excel使用这个phpexcel

至于数据就需要分片写入excel文件,一次写入1000条或者2000条啊,一次数据太多,会导致内存溢出导致错误,每一1000位一个文件,最后在合并文件就可以了,一次写入50000条,这种做法是不支持的(除非你服务器很好)

用CSV吧,然后用缓冲,一次写1M的数据,直到写满5W条

$offset = 0;
$limit = 1000;
$fp = fopen('export.csv','wb');
do {
    $list = $db->offset($offset)->limit($limit)->all(); // 示例代码,查出数据列表即可
    foreach($list as $row) {
        $line = sprintf('%s,%s,%s,%s\n',$row['name'],$row['phone'],$row['company'],$row['position']); // 字段名,csv要求逗号分隔
        fwrite($fp,$line);
    }
    if(count($list)<$limit) { // 查出来的条数小于每页大小,证明没数据了,结束
        break;
    }
    $offset += $limit; // 增加offset值
}while(true);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题