php怎么导出大量数据的Excel

php怎么导出大量数据的Excel,第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);

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)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9380192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存