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编程最快明白》第六讲:Mysql数据库操作
Nov 01 PHP
php中取得URL的根域名的代码
Mar 23 PHP
探讨:web上存漏洞及原理分析、防范方法
Jun 29 PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 PHP
php构造函数的继承方法
Feb 09 PHP
PHP设计模式之工厂模式与单例模式
Sep 28 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
Yii 2中的load()和save()示例详解
Aug 03 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
PHP strripos函数用法总结
Feb 11 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
May 27 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之第三天
2006/10/09 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
js中bool值的转换及“&&”、“||”、 “!!”详解
2017/12/21 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
python web框架学习笔记
2016/05/03 Python
浅谈python为什么不需要三目运算符和switch
2016/06/17 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
在PyCharm中实现添加快捷模块
2020/02/12 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
使用CSS3实现字体颜色渐变的实现
2020/08/10 HTML / CSS
施华洛世奇美国官网:SWAROVSKI美国
2018/02/08 全球购物
介绍一下XMLHttpRequest对象
2012/02/12 面试题
优秀中专生推荐信
2013/11/17 职场文书
教师实习自我鉴定
2013/12/13 职场文书
英文自荐信
2013/12/15 职场文书
农业资源与环境专业自荐信范文
2013/12/30 职场文书
饭店工作计划书
2014/01/10 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
服务行业标语口号
2015/12/26 职场文书
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL