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教程 预定义变量
Oct 23 PHP
php实现在服务器端调整图片大小的方法
Jun 16 PHP
php图片水印添加、压缩、剪切的封装类实现
Apr 18 PHP
大家都应该掌握的PHP关联数组使用技巧
Dec 25 PHP
详解PHP实现异步调用的4种方法
Mar 14 PHP
PHP的Yii框架中Model模型的学习教程
Mar 29 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
Oct 20 PHP
php安装dblib扩展,连接mssql的具体步骤
Mar 02 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
Laravel框架验证码类用法实例分析
Sep 11 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 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一个找二层目录的小东东
2012/08/02 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
分享一则PHP定义函数代码
2015/02/26 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
thinkPHP5.1框架中Request类四种调用方式示例
2019/08/03 PHP
JS 控件事件小结
2012/10/31 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
Vue解决echart在element的tab切换时显示不正确问题
2020/08/03 Javascript
基于vue+echarts数据可视化大屏展示的实现
2020/12/25 Vue.js
JavaScript canvas实现文字时钟
2021/01/10 Javascript
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
Python实现从URL地址提取文件名的方法
2015/05/15 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
python批量修改交换机密码的示例
2020/09/22 Python
Python Serial串口基本操作(收发数据)
2020/11/06 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
法学专业应届生求职信
2013/10/16 职场文书
经典演讲稿汇总
2014/05/19 职场文书
企业员工薪酬方案
2014/06/04 职场文书
节能环保演讲稿
2014/08/28 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
联谊活动总结范文
2015/05/09 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
MySQL中正则表达式(REGEXP)使用详解
2022/07/07 MySQL