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版(3)
Oct 09 PHP
文章推荐系统(三)
Oct 09 PHP
新手学习PHP的一些基础知识分享
Jul 27 PHP
PHP stripos()函数及注意事项的分析
Jun 08 PHP
php实现图片缩放功能类
Dec 18 PHP
函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐
Jul 02 PHP
php中 ob_start等函数截取标准输出的方法
Jun 22 PHP
php中注册器模式类用法实例分析
Nov 03 PHP
2017年最新PHP经典面试题目汇总(上篇)
Mar 17 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
自动把纯文本转换成Web页面的php代码
2009/08/27 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
Array.prototype.slice 使用扩展
2010/06/09 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
JS中去掉array中重复元素的方法
2017/05/26 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
Python3.x中自定义比较函数
2015/04/24 Python
详解python3实现的web端json通信协议
2016/12/29 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
django 修改server端口号的方法
2018/05/14 Python
python+flask实现API的方法
2018/11/21 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
Keras预训练的ImageNet模型实现分类操作
2020/07/07 Python
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
优秀生推荐信范文
2013/11/28 职场文书
设计总监岗位职责
2013/12/07 职场文书
超市创业计划书
2014/09/15 职场文书
公司财务部岗位职责
2015/04/14 职场文书