php导出百万条数据表格,php导出百万条数据到Excel

php 怎么把数据导出到excel表格

php 把数据导出到excel表格有多种方法,比如使用 phpExcel 等,以下代码是直接通过 header 生成 excel 文件的代码示例:

创新互联致力于互联网网站建设与网站营销,提供成都网站设计、成都做网站、网站开发、seo优化、网站排名、互联网营销、微信小程序开发、公众号商城、等建站开发,创新互联网站建设策划专家,为不同类型的客户提供良好的互联网应用定制解决方案,帮助客户在新的全球化互联网环境中保持优势。

?php

header("Content-type:application/vnd.ms-excel");

header("Content-Disposition:filename=xls_region.xls");

$cfg_dbhost = 'localhost';

$cfg_dbname = 'testdb';

$cfg_dbuser = 'root';

$cfg_dbpwd = 'root';

$cfg_db_language = 'utf8';

// END 配置

//链接数据库

$link = mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);

mysql_select_db($cfg_dbname);

//选择编码

mysql_query("set names ".$cfg_db_language);

//users表

$sql = "desc users";

$res = mysql_query($sql);

echo "tabletr";

//导出表头(也就是表中拥有的字段)

while($row = mysql_fetch_array($res)){

$t_field[] = $row['Field']; //Field中的F要大写,否则没有结果

echo "th".$row['Field']."/th";

}

echo "/tr";

//导出100条数据

$sql = "select * from users limit 100";

$res = mysql_query($sql);

while($row = mysql_fetch_array($res)){

echo "tr";

foreach($t_field as $f_key){

echo "td".$row[$f_key]."/td";

}

echo "/tr";

}

echo "/table";

?

PHP导出100万数据到excel

php导出数据excel有专门的库,当导出少量数据的时候速度很快,但是当数据量大的时候就会存在服务器内存不够之类的。

所以在导出大量数据的时候就应该分页查询数据,避免服务器宕机。正好PHP提供了fputcsv函数可以将数据写入到csv文件中。

这样我们就可以使用PHP对数据进行分页查询,再写入到csv文件中。

php怎么导出大量数据的Excel,phpexcel

1 $fp = fopen('php://output', 'a');

2

3 // 输出Excel列名信息

4 $head = array("邮件");

5 foreach ($head as $i = $v) {

6 // CSV的Excel支持GBK编码,一定要转换,否则乱码

7 $head[$i] = iconv('utf-8', 'gbk', $v);

8 }

9

10 // 将数据通过fputcsv写到文件句柄

11 fputcsv($fp, $head);

12

13 // 计数器

14 $cnt = 0;

15 // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小

16 $limit = 100000;

17

18 // 逐行取出数据,不浪费内存

19 $count = count($email);

20

21 for($t=0;$t$count;$t++) {

22

23 $cnt ++;

24 if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题

25 ob_flush();

26 flush();

27 $cnt = 0;

28 }

29 $row[] = $email[$t];

30 foreach ($row as $i = $v) {

31 $row[$i] = iconv('utf-8', 'gbk', $v);

32 }

33 fputcsv($fp, $row);

34 unset($row);

35 }

php怎么导出大量数据的Excel

微软的Excel设置单元格行数默认是6万行rows,相对的讲其实当我们超过1万行的时候已经是大数据的导出。

好比:有客户10000人,平均每人每天产生10条活动记录,要导出上周所有的客户活动记录: 10000*10*7=700000

估计看70万行的Excel这个人会疯掉的,我们的建议是分批次导出,按时间导出到不同的excel

下面是一个PHPExcel官方的Demo(已修改过)

复制代码

define('EOL', 'br /');

$objPHPExcel = new \app\extensions\PHPExcel\PHPExcel();

ini_set("memory_limit", "1024M"); // 设置php可使用内存

$cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;

if (!\PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {

die($cacheMethod . " 缓存方法不可用" . EOL);

}

echo date('H:i:s'), " 当前使用的缓存方法是: ", $cacheMethod, " 方式", EOL;

echo date('H:i:s'), " 开始设置文档属性", EOL;

$objPHPExcel-getProperties()-setCreator("Maarten Balliauw")

-setLastModifiedBy("Maarten Balliauw")

-setTitle("Office 2007 XLSX Test Document")

-setSubject("Office 2007 XLSX Test Document")

具体的还有很多写不下,我是在后盾人看的教学视频无意中学到的,正好解答给你希望能帮到你


分享文章:php导出百万条数据表格,php导出百万条数据到Excel
文章位置:http://csdahua.cn/article/phicoh.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流