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 相关文章推荐
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
PHP字符转义相关函数小结(php下的转义字符串)
Apr 12 PHP
PHP执行速率优化技巧小结
Mar 15 PHP
php中session_unset与session_destroy的区别分析
Jun 16 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
Dec 25 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
值得分享的php+ajax实时聊天室
Jul 20 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
PHP 中常量的知识整理
Apr 14 PHP
PHP设计模式之工厂模式定义与用法详解
Apr 03 PHP
PHP xpath提取网页数据内容代码解析
Jul 16 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
多重?l件?合查?(二)
2006/10/09 PHP
PHP的5个安全措施小结
2012/07/17 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
PHP中的替代语法介绍
2015/01/09 PHP
PHP的Yii框架入门使用教程
2016/02/15 PHP
PHP+Oracle本地开发环境搭建方法详解
2019/04/01 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
Node.js学习入门
2017/01/03 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
使用Angular自定义字段校验指令的方法示例
2019/02/01 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
Vue按时间段查询数据组件使用详解
2020/08/21 Javascript
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
浅谈Python的Django框架中的缓存控制
2015/07/24 Python
python中函数默认值使用注意点详解
2016/06/01 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
农民工创业典型事迹
2014/01/25 职场文书
出生公证委托书
2014/04/03 职场文书
酒店端午节活动方案
2014/08/26 职场文书
安全员岗位职责
2015/02/10 职场文书
预备党员转正意见
2015/06/01 职场文书
JAVA API 实用类 String详解
2021/10/05 Java/Android