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对gzip文件或者字符串解压实例参考
Jul 25 PHP
php 静态页面中显示动态内容
Aug 14 PHP
认识并使用PHP超级全局变量
Jan 26 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
PHP中error_reporting()用法详解
Aug 31 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
php简单实现多语言切换的方法
May 09 PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 PHP
php基于闭包实现函数的自调用(递归)实例分析
Nov 11 PHP
ThinkPHP防止重复提交表单的方法实例分析
May 10 PHP
Laravel使用Queue队列的技巧汇总
Sep 02 PHP
php适配器模式简单应用示例
Oct 23 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横向重复区域显示二法
2008/09/25 PHP
php中设置多级目录session的问题
2011/08/08 PHP
php实现可运算的验证码
2015/11/10 PHP
php封装的验证码类分享
2017/02/26 PHP
PHP简单实现循环链表功能示例
2017/11/10 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
jquery中prop()方法和attr()方法的区别浅析
2013/09/06 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
ES7之Async/await的使用详解
2019/03/28 Javascript
ES6 Promise对象概念及用法实例详解
2019/10/15 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
python flask实现分页的示例代码
2018/08/02 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
python实现简单猜单词游戏
2020/12/24 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
大学生护理专业自荐信
2013/10/03 职场文书
法学研究生自我鉴定范文
2013/12/04 职场文书
饮料业务员岗位职责
2013/12/15 职场文书
养殖行业的创业计划书
2014/01/05 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书