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中看实例学正则表达式
Dec 25 PHP
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
PHP正则的Unknown Modifier错误解决方法
Mar 02 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
Linux下php5.4启动脚本
Aug 03 PHP
php制作动态随机验证码
Feb 12 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 PHP
Apache PHP MySql安装配置图文教程
Aug 27 PHP
微信开发之php表单微信中自动提交两次问题解决办法
Jan 08 PHP
thinkPHP多表查询及分页功能实现方法示例
Jul 03 PHP
yii2 上传图片的示例代码
Nov 02 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 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类包含的七种语法说明
2015/06/04 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
用js怎么把&字符换成"&amp:"
2006/10/19 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
Vue中fragment.js使用方法详解
2017/03/09 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
Python获取当前时间的方法
2014/01/14 Python
python获取本机外网ip的方法
2015/04/15 Python
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
Python psutil模块简单使用实例
2015/04/28 Python
python分析网页上所有超链接的方法
2015/05/08 Python
python机器学习之KNN分类算法
2018/08/29 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
卫校中专生的自我评价
2014/01/15 职场文书
大学生职业生涯规划书模板
2014/01/18 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis