用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

php fputcsv函数将mysql数据库导出到excel文件

时间:2015-01-23  来源:西部数据  作者:西部数据

fputcsv() 函数将行格式化为 CSV 并写入一个打开的文件,该函数返回写入字符串的长度,若出错,则返回 false.

说明:fputcsv() 将一行(用 fields 数组传递)格式化为 CSV 格式并写入由 file 指定的文件.

PHP实例代码如下:

  1. // 输出Excel文件头,可把user.csv换成你要的文件名  
  2. header('Content-Type: application/vnd.ms-excel');  
  3. header('Content-Disposition: attachment;filename="user.csv"');  
  4. header('Cache-Control: max-age=0'); 
  5.  
  6. // 从数据库教程中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可  
  7. $sql = 'select * from tbl where ……';  
  8. $stmt = $db->query($sql); 
  9.  
  10. // 打开PHP文件句柄,php教程://output 表示直接输出到浏览器  
  11. $fp = fopen('php://output''a'); 
  12.  
  13. // 输出Excel列名信息  
  14. $head = array('姓名''性别''年龄''Email''电话''……');  
  15. foreach ($head as $i => $v) {  
  16. // CSV的Excel支持GBK编码,一定要转换,否则乱码  
  17. $head[$i] = iconv('utf-8''gbk'$v);  
  18.  
  19. // 将数据通过fputcsv写到文件句柄  
  20. fputcsv($fp$head); 
  21.  
  22. // 计数器  
  23. $cnt = 0;  
  24. // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小  
  25. $limit = 100000; 
  26.  
  27. // 逐行取出数据,不浪费内存  
  28. while ($row = $stmt->fetch(Zend_Db::FETCH_NUM)) { 
  29. //开源代码phpfensi.com 
  30. $cnt ++;  
  31. if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题  
  32. ob_flush();  
  33. flush();  
  34. $cnt = 0;  
  35.  
  36. foreach ($row as $i => $v) {  
  37. $row[$i] = iconv('utf-8''gbk'$v);  
  38. }  
  39. fputcsv($fp$row);  
  40. }
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
    无相关信息
栏目更新
栏目热门