博主信息
博文 11
粉丝 0
评论 1
访问量 17003
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP快速导出Excel【CSV】报表
Alfred的学习笔记
原创
1026人浏览过
  1. /**
  2. * 导出excel(csv)
  3. *
  4. * @param string $fileName 文件名称
  5. * @param array $cellName ['id','name']
  6. * @param array $data [['id'=>111,'name'=>'222'],['id'=>111,'name'=>'222']]
  7. * @return void
  8. */
  9. public function downloadCsv($fileName = '', array $cellName, array $data) {
  10. header('Content-Type: application/vnd.ms-excel');
  11. header('Content-Disposition: attachment;filename="' . $fileName . '.csv"');
  12. header('Cache-Control: max-age=0');
  13. //打开PHP文件句柄,php://output 表示直接输出到浏览器
  14. $fp = fopen('php://output', 'a');
  15. //输出Excel列名信息
  16. foreach ($cellName as $key => $value) {
  17. //CSV的Excel支持GBK编码,一定要转换,否则乱码
  18. $cellName[$key] = iconv('utf-8', 'gbk', $value);
  19. }
  20. //将数据通过fputcsv写到文件句柄
  21. fputcsv($fp, $cellName);
  22. //计数器
  23. $num = 0;
  24. //每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
  25. $limit = 100000;
  26. //逐行取出数据,不浪费内存
  27. $count = count($data);
  28. for ($i = 0; $i < $count; $i++) {
  29. $num++;
  30. //刷新一下输出buffer,防止由于数据过多造成问题
  31. if ($limit == $num) {
  32. ob_flush();
  33. flush();
  34. $num = 0;
  35. }
  36. $row = $data[$i];
  37. foreach ($row as $key => $value) {
  38. $row[$key] = iconv('utf-8', 'gbk', $value);
  39. }
  40. fputcsv($fp, $row);
  41. }
  42. exit;
  43. }

[引用] PHP高效导出Excel(CSV)

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学