比较常用的是用PHPExcel,1万左右数据还行,但是数据到达100万左右,PHPExcel就显的很无助,搜索了下比较常用的是使用php的fputcsv,不知道还有什么办法能导出比较大量数据的excle
刚刚测试了下fputcsv,发现全部挤到A中,无法换到B中
2012年9月2日添加
03版的确实是有限制的,格式php的csv的是不是用excel打开只会出现在A列上面?
2012年9月2日添加
我觉得我非常有必要说下为什么会有这个需求,一个大点的品牌公司,一年左右的订单,超过100万是很正常的,年末的时候他们的业务人员会根据订单进行各种分析,每个公司的分析角度又是不一样的,所以把所有订单导出来给业务人员是一个最简单的办法,为什么要导出excle,是因为对于业务人员来说这个是最常用的,你也不可能去帮助那么多家的公司开发这样那样的报表。
所以也就有了这个需求,怎么导出超过100万甚至1000万数据excle的问题
最后给你看一个phpmyadmin导出的CSV示例,对照你自己生成的CSV示例,看看哪里不一样。
之前我导出都是用csv的,如果putcsv有问题,你可以尝试自己去拼装csv的文件。csv的格式非常简单,就是英文逗号分隔。
看你截图,有可能是首行留空造成的问题,建议修改试试。
---
还有一个办法,就是用 \t 分割,存成文本文件,然后复制黏贴到excel里
很赞同2楼的说法。
excel本身就不是为大数据而操作的,如果你真的过10万行,你还是不要用excel来操作了,这样真的会死人的。
当然如果你真的要操作,你还是存到access中。然后用excel来读取access的数据来生成各种图表(如果你的excel是为了要用来生成图表的话)。
否则,真没意义啊。
如果我没记错的话,Excel极限是65536条。
1.Excel本身就不能装几百万数据。Excel是有条数限制的。具体多少条你可以查阅相关资料。
2.你可以将数据按照条数进行分割写入不同的Excel文件。生成多个。
3.即使你写入csv文件,你想用Excel打开几百万数据也不太现实
excel分列就好了
可以csv , 不段的刷新缓冲期,来实现大数据流的导出
循环生成CSV 数据, 每生成1000 条的时候刷新下缓冲期
用这个看下,别一下查询出全部数据,你可以参考下mysql_unbuffered_query
03版的确实是有限制的,格式php的csv的是不是用excel打开只会出现在A列上面?
我正有这个需求