当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-11 10:37:14 浏览: 评论:0 

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. }

Tags: fputcsv函数 mysql导出excel

分享到:

相关文章