$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
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);
php header("Content-type:application/vndms-excel");header("Content-Disposition:attachment;filename=test_dataxls");$tx=’表头’;echo $tx"nn";//输出内容如下:echo "姓名""t";echo "年龄""t";echo "学历""t";echo "n";echo "张三""t";echo "25""t";echo "本科""t";>如果你一定要输入xls标准的excel文件可参考下面方法/ 输出XLS的头信息 注:使用此函数前后都不应有任何数据输出
这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件。
复制代码
代码如下:
//
输出Excel文件头,可把usercsv换成你要的文件名
header('Content-Type:
application/vndms-excel');
header('Content-Disposition:
attachment;filename="usercsv"');
header('Cache-Control:
max-age=0');
//
从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可
$sql
=
'select
from
tbl
where
……';
$stmt
=
$db->query($sql);
//
打开PHP文件句柄,php://output
表示直接输出到浏览器
$fp
=
fopen('php://output',
'a');
//
输出Excel列名信息
$head
=
array('姓名',
'性别',
'年龄',
'Email',
'电话',
'……');
foreach
($head
as
$i
=>
$v)
{
//
CSV的Excel支持GBK编码,一定要转换,否则乱码
$head[$i]
=
iconv('utf-8',
'gbk',
$v);
}
//
将数据通过fputcsv写到文件句柄
fputcsv($fp,
$head);
//
计数器
$cnt
=
0;
//
每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
$limit
=
100000;
//
逐行取出数据,不浪费内存
while
($row
=
$stmt->fetch(Zend_Db::FETCH_NUM))
{
$cnt
++;
if
($limit
==
$cnt)
{
//刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush();
$cnt
=
0;
}
foreach
($row
as
$i
=>
$v)
{
$row[$i]
=
iconv('utf-8',
'gbk',
$v);
}
fputcsv($fp,
$row);
}
优点简单易用,非常节省内存,不依赖第三方类库。
以上就是关于php怎么导出大量数据的Excel全部的内容,包括:php怎么导出大量数据的Excel、php导出生成excel表格几种方法介绍、PHP导出MySQL数据到Excel文件(fputcsv)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)