PHP导出MySQL数据到Excel文件(fputcsv)


Posted in PHP onJuly 03, 2011

这里的方法是利用fputcsv写CSV文件的方法,直接向浏览器输出Excel文件。

// 输出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)) { 
$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 相关文章推荐
PHP脚本的10个技巧(3)
Oct 09 PHP
PHP mcrypt可逆加密算法分析
Jul 19 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
PHP中比较时间大小实例
Aug 21 PHP
php数组查找函数总结
Nov 18 PHP
php短址转换实现方法
Feb 25 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
PHP实现的统计数据功能详解
Dec 06 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
Yii框架分页技术实例分析
Aug 30 PHP
PHP include_path设置技巧分享
Jul 03 #PHP
php array_intersect比array_diff快(附详细的使用说明)
Jul 03 #PHP
php header Content-Type类型小结
Jul 03 #PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 #PHP
PHP采集利器 Snoopy 试用心得
Jul 03 #PHP
php中的三元运算符使用说明
Jul 03 #PHP
PHP 数据结构 算法 三元组 Triplet
Jul 02 #PHP
You might like
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
PHP使用Pthread实现的多线程操作实例
2015/11/14 PHP
PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
2016/01/07 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
js快速排序的实现代码
2013/12/08 Javascript
jQuery实现瀑布流布局
2014/12/12 Javascript
JS中的Replace方法使用经验分享
2015/05/20 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
jquery实现图片切换代码
2016/10/13 Javascript
D3.js实现文本的换行详解
2016/10/14 Javascript
JavaScript利用闭包实现模块化
2017/01/13 Javascript
js模块加载方式浅析
2017/08/12 Javascript
vue.js实现插入数值与表达式的方法分析
2018/07/06 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
Python如何使用input函数获取输入
2020/08/06 Python
pandas apply多线程实现代码
2020/08/17 Python
美国最大的购物网站:Amazon.com(亚马逊美国)
2020/05/23 全球购物
法学专业应届生求职信
2013/10/16 职场文书
伏羲庙导游词
2015/02/09 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL