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 相关文章推荐
第十一节 重载 [11]
Oct 09 PHP
做个自己站内搜索引擎
Oct 09 PHP
IIS7.X配置PHP运行环境小结
Jun 09 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
php 邮件发送问题解决
Mar 22 PHP
PHP使用Alexa API获取网站的Alexa排名例子
Jun 12 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
php使用正则表达式进行字符串搜索的方法
Mar 23 PHP
php解析字符串里所有URL地址的方法
Apr 03 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
php pdo连接数据库操作示例
Nov 18 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 error_log 函数的使用
2009/04/13 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
php结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
讲解WordPress开发中一些常用的debug技巧
2015/12/18 PHP
php实现文件上传基本验证
2020/03/04 PHP
DOM 中的事件处理介绍
2012/01/18 Javascript
js修改input的type属性问题探讨
2013/10/12 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
解析Vue2 dist 目录下各个文件的区别
2017/11/22 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
python自动格式化json文件的方法
2015/03/11 Python
基于python OpenCV实现动态人脸检测
2018/05/25 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
python对html过滤处理的方法
2018/10/21 Python
用Python将Excel数据导入到SQL Server的例子
2019/08/24 Python
python hash每次调用结果不同的原因
2019/11/21 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
实习自我鉴定
2013/12/15 职场文书
打架检讨书500字
2014/01/29 职场文书
党员组织关系介绍信
2014/02/13 职场文书
高中生班主任评语
2014/04/25 职场文书
社区春季防火方案
2014/06/02 职场文书
2014年工作总结及2015工作计划
2014/12/12 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
千万级用户系统SQL调优实战分享
2022/03/03 MySQL
源码安装apache脚本部署过程详解
2022/09/23 Servers