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下的权限算法的实现
Apr 28 PHP
php设置编码格式的方法
Mar 05 PHP
php加密解密实用类分享
Jan 07 PHP
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
php+js iframe实现上传头像界面无跳转
Apr 29 PHP
php多任务程序实例解析
Jul 19 PHP
PHP保存带BOM文件的方法
Feb 12 PHP
php比较两个字符串长度的方法
Jul 13 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
PHP截取IE浏览器并缩小原图的方法
Mar 04 PHP
php实现头像上传预览功能
Apr 27 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
Feb 18 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
php session处理的定制
2009/03/16 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
javascript 添加和移除函数的通用方法
2009/10/20 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
JavaScript 实现的checkbox经典实例分享
2016/10/16 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
python的Template使用指南
2014/09/11 Python
python传递参数方式小结
2015/04/17 Python
python实现windows下文件备份脚本
2018/05/27 Python
python 中文件输入输出及os模块对文件系统的操作方法
2018/08/27 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
美国经典刺绣和字母儿童服装特卖:Smocked Auctions
2018/07/16 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
数控技术应届生求职信
2013/11/13 职场文书
简历自我评价模版
2014/01/31 职场文书
暑期社会实践方案
2014/02/05 职场文书
采购助理岗位职责
2014/02/16 职场文书
事务机电主管工作职责
2014/02/25 职场文书
五水共治一句话承诺
2014/05/30 职场文书
档案保密承诺书
2014/06/03 职场文书
四风问题查摆材料
2014/08/25 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript
4种方法python批量修改替换列表中元素
2022/04/07 Python