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 相关文章推荐
初探PHP5
Oct 09 PHP
MySQL连接数超过限制的解决方法
Jul 17 PHP
php curl基本操作详解
Jul 23 PHP
php旋转图片90度的方法
Nov 07 PHP
PHP 字符串长度判断效率更高的方法
Mar 02 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
如何使用Gitblog和Markdown建自己的博客
Jul 31 PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
PHP常用技巧汇总
Mar 04 PHP
PHP中OpenSSL加密问题整理
Dec 14 PHP
php和js实现根据子网掩码和ip计算子网功能示例
Nov 09 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实现指定字符串中查找子字符串的方法
2015/03/17 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
浅析php-fpm静态和动态执行方式的比较
2016/11/09 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
javascript getElementsByClassName 和js取地址栏参数
2010/01/02 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
JS实现电商放大镜效果
2017/08/24 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
python计算对角线有理函数插值的方法
2015/05/07 Python
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
Python中extend和append的区别讲解
2019/01/24 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
Oracle性能调优原则
2012/05/03 面试题
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
检讨书范文
2015/01/27 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
接待员岗位职责
2015/02/13 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS