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设计模式 Builder(建造者模式)
Jun 26 PHP
php中apc缓存使用示例
Dec 25 PHP
PHP获取时间排除周六、周日的两个方法
Jun 30 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
详解PHP中array_rand函数的使用方法
Sep 11 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
详解php用static方法的原因
Sep 12 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 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
中国第一家无线电行
2021/03/01 无线电
php 网上商城促销设计实例代码
2012/02/17 PHP
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
在Javascript中为String对象添加trim,ltrim,rtrim方法
2006/09/22 Javascript
编程语言JavaScript简介
2014/10/16 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
基于Bootstrap实现Material Design风格表单插件 附源码下载
2016/04/18 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
列举Python中吸引人的一些特性
2015/04/09 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
python使用KNN算法手写体识别
2018/02/01 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
Mistine官方海外旗舰店:泰国国民彩妆品牌
2016/12/28 全球购物
一些.net面试题
2014/10/06 面试题
某公司的.net工程师面试题笔试题
2013/11/22 面试题
工程概预算专业毕业生求职信
2013/10/04 职场文书
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
中等生评语大全
2014/05/04 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
考博导师推荐信范文
2015/03/27 职场文书
民事纠纷协议书
2016/03/23 职场文书
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js
服务器间如何实现文件共享
2022/05/20 Servers
设置IIS Express并发数
2022/07/07 Servers