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 相关文章推荐
php 日期和时间的处理-郑阿奇(续)
Jul 04 PHP
PHP页面中文乱码分析
Oct 29 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
Mar 13 PHP
ThinkPHP3.1新特性之Action参数绑定
Jun 19 PHP
php通过asort()给关联数组按照值排序的方法
Mar 18 PHP
学习php设计模式 php实现单例模式(singleton)
Dec 07 PHP
php面向对象编程self和static的区别
May 08 PHP
XHProf报告字段含义的解析
May 17 PHP
分享PHP-pcntl 实现多进程代码
Sep 30 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
PHP实现动态删除XML数据的方法示例
Mar 30 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
Jan 02 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
15种PHP Encoder的比较
2007/03/06 PHP
彻底杜绝PHP的session cookie错误
2009/08/09 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
Javascript 篱式条件判断
2008/08/22 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
2019/05/28 jQuery
vue prop属性传值与传引用示例
2019/11/13 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
python练习程序批量修改文件名
2014/01/16 Python
Python中的super用法详解
2015/05/28 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
python自动循环定时开关机(非重启)测试
2019/08/26 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
Selenium关闭INFO:CONSOLE提示的解决
2020/12/07 Python
2014年圣诞节倒计时网页的制作过程
2014/12/05 HTML / CSS
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
德国PC硬件网站:CASEKING
2016/10/20 全球购物
人力资源经理的岗位职责
2014/03/02 职场文书
法人代表证明书格式
2014/10/01 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
思想政治表现评语
2015/01/04 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis
Elasticsearch 数据类型及管理
2022/04/19 Python