×

微信扫一扫,快捷登录!

ThinkPHP导出CSV、Excel

标签: 暂无标签

[p=30,2,center]学习资料:IT运维管理社区专家讲堂直播300期视频回放

[p=30,2,center]

[p=30,2,center] 微信图片_20231106155031.png





实际运用中EXCEL的导出比导入用的多,这里给大家分享一个导出CSVEXCEL导出,简单,方便。

首先我们在Thinkphp/Library/Think下新文件文件:Csv.class.php
  1. <fontface="微软雅黑"size="3"><?php
  2. namespaceThink;
  3. classCsv
  4. {
  5. //导出csv文件
  6. publicfunctionput_csv($list,$title){
  7. $file_name="CSV".date("mdHis",time()).".csv";
  8. header('Content-Type:application/vnd.ms-excel');
  9. header('Content-Disposition:attachment;filename='.$file_name);
  10. header('Cache-Control:max-age=0');
  11. $file=fopen('php://output',"a");
  12. $limit=1000;
  13. $calc=0;
  14. foreach($titleas$v){
  15. $tit[]=iconv('UTF-8','GB2312//IGNORE',$v);
  16. }
  17. fputcsv($file,$tit);
  18. foreach($listas$v){
  19. $calc++;
  20. if($limit==$calc){
  21. ob_flush();
  22. flush();
  23. $calc=0;
  24. }
  25. foreach($vas$t){
  26. $tarr[]=iconv('UTF-8','GB2312//IGNORE',$t);
  27. }
  28. fputcsv($file,$tarr);
  29. unset($tarr);
  30. }
  31. unset($list);
  32. fclose($file);
  33. exit();
  34. }
  35. }
  36. ?></font>
复制代码

然后我们在导出的时候,在对应的控制器同步use一下。
  1. <fontface="微软雅黑"size="3">$csv=newCsv();
  2. $list=M("members")->field($field)->limit(10000)->select();//查询数据,可以进行处理
  3. $csv_title=array('用户ID','用户名','绑定邮箱','绑定手机','注册时间','注册IP');
  4. $csv->put_csv($list,$csv_title);</font>
复制代码

然后定义字段名,就是第一行的名字,处理后的数组需要与之对应,我个人测试过导出的话这个比PHPEXCEL快很多。而且CSV是中间格式比直接导出excel好多了。




上一篇:你问我答:请大神帮忙举一个将事件问题变更这三个流程关联在一起的案例
下一篇:【北京】2016年第一期 ITIL Foundation 2011 团购课程5月28~29日开课!![北京]
可可西

写了 1 篇文章,拥有财富 47,被 4 人关注

您需要登录后才可以回帖 登录 | 立即注册
B Color Link Quote Code Smilies

成为第一个吐槽的人

Powered by IT 运维管理
返回顶部