PHP 实现从数据库导出到.csv文件方法


Posted in PHP onJuly 06, 2017

 PHP 实现从数据库导出到.csv文件方法

实现代码:

public function export(){
 // 从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可
 // 输出Excel文件头,可把user.csv换成你要的文件名
 header('Content-Type: application/vnd.ms-excel');
 header('Content-Disposition: attachment;filename="order.csv"');
 header('Cache-Control: max-age=0');
 $where=array(
   "paid"=>1,
   "pay_type"=>array("NEQ","offline"),
   "status"=>array("lt",3),
 );
 $stmt = M("Group_order")->field("order_id,order_name,num,price,total_money,contact_name,phone,zipcode,adress,wx_cheap,balance_pay,payment_money,tuan_type,pay_time,pay_type,third_id,is_mobile_pay,paid,status")->where($where)->order("order_id DESC")->limit(1000)->select();
   // 打开PHP文件句柄,php://output 表示直接输出到浏览器
 $fp = fopen('php://output', 'a');

 // 输出Excel列名信息
 $head = array("订单号","订单名称","购买数量","单价","总价","联系人姓名","联系人电话","邮编","详细地址","微信优惠金额","余额支付金额","真实支付金额","特卖类型(2为实物)","支付时间","支付类型","第三方支付id","是否是手机支付","是否支付","订单状态");
 foreach ($head as $i => $v) {
 // CSV的Excel支持GBK编码,一定要转换,否则乱码
   $head[$i] = iconv('utf-8', 'gbk', $v);
 }

 // 将数据通过fputcsv写到文件句柄
 fputcsv($fp, $head);

 // 计数器
 $cnt = 0;
 // 每隔$limit行,刷新一下输出buffer,不要太大,也不要太小
 $limit = 500;
 // 逐行取出数据,不浪费内存
 $count = count($stmt);
 for($t=0;$t<$count;$t++) {

 $cnt ++;
 if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
   ob_flush();
   flush();
   $cnt = 0;
 }
 $row = $stmt[$t];
foreach ($row as $i => $v) {
  if($i=='pay_time'){
     $v=date("Y-m-d,H:i:s",$v);
  }
   $row[$i] = iconv('utf-8', 'gbk', $v);
 }
 fputcsv($fp, $row);
 }
   fclose($fp);
 }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
wiki-shan写的php在线加密的解密程序
Sep 07 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
使用session判断用户登录用户权限(超简单)
Jun 08 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
新浪微博OAuth认证和储存的主要过程详解
Mar 27 PHP
Yii数据库缓存实例分析
Mar 29 PHP
Zend Framework数据库操作方法实例总结
Dec 11 PHP
php中实现字符串翻转的方法
Feb 22 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
May 17 PHP
thinkphp实现附件上传功能
May 26 PHP
php-beanstalkd消息队列类实例分享
Jul 19 PHP
php文件上传类的分享
Jul 06 #PHP
PHP图片水印类的封装
Jul 06 #PHP
php生出随机字符串
Jul 06 #PHP
PHP实现的分页类定义与用法示例
Jul 05 #PHP
PHP实现的文件上传类与用法详解
Jul 05 #PHP
PHP基于GD库实现的生成图片缩略图函数示例
Jul 05 #PHP
PHP实现的下载远程文件类定义与用法示例
Jul 05 #PHP
You might like
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
Stop SQL Server
2007/06/21 Javascript
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
用jQuery toggleClass 实现鼠标移上变色
2014/05/14 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
JavaScript DOM基础
2015/04/13 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
JS随机排序数组实现方法分析
2017/10/11 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
[01:31:22]Ti4 循环赛第四日附加赛LGD vs Mouz
2014/07/13 DOTA
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
在Python web中实现验证码图片代码分享
2017/11/09 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
Python&amp;&amp;GDAL实现NDVI的计算方式
2020/01/09 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
HTML5的一个显示电池状态的API简介
2015/06/18 HTML / CSS
.net面试题
2015/12/22 面试题
大二学生职业生涯规划书
2014/02/05 职场文书
农行心得体会
2014/09/02 职场文书
心得体会的写法
2014/09/05 职场文书
无犯罪记录证明范本
2014/09/15 职场文书
80后婚前协议书范本
2014/10/24 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
让世界充满爱观后感
2015/06/10 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书