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高级OOP技术演示
Aug 27 PHP
一道求$b相对于$a的相对路径的php代码
Aug 08 PHP
Php header()函数语法及使用代码
Nov 04 PHP
PHP实现的简单缓存类
Jul 29 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
php下载文件,添加响应头的简单实例
Sep 22 PHP
yii2 resetful 授权验证详解
May 18 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
PHP实现函数内修改外部变量值的方法示例
Dec 28 PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 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/04/16 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
ECMAScript 基础知识
2007/06/29 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
jQuery中的deferred对象和extend方法详解
2017/05/08 jQuery
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
js判断节假日实例代码
2017/12/27 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
利用python的socket发送http(s)请求方法示例
2018/05/07 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python定义一个函数的方法
2020/06/15 Python
Speedo美国:澳大利亚顶尖泳衣制造商
2016/08/03 全球购物
2014年3.15团委活动总结
2014/03/16 职场文书
校长寄语大全
2014/04/09 职场文书
竞选班委演讲稿
2014/04/28 职场文书
英文推荐信格式范文
2014/05/09 职场文书
社区敬老月活动总结
2015/05/07 职场文书