好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

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

PHP实例代码如下:

// 输出Excel文件头,可把user.csv换成你要的文件名    header( 'Content-Type: application/vnd.ms-excel' );   header( 'Content-Disposition: attachment;filename="user.csv"' );   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)) {  //开源代码phpfensi测试数据   $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 fputcsv函数将mysql数据库导出到excel文件 - php高的详细内容...

  阅读:46次