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 相关文章推荐
模拟xcopy的函数
Oct 09 PHP
用PHP写的MySQL数据库用户认证系统代码
Mar 22 PHP
PHP的伪随机数与真随机数详解
May 27 PHP
实现PHP框架系列文章(6)mysql数据库方法
Mar 04 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
CI框架数据库查询之join用法分析
May 18 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
PHP中TP5 上传文件的实例详解
Jul 31 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
PHP如何解决微信文章图片防盗链
Dec 09 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
Mar 09 PHP
PHP使用QR Code生成二维码实例
Jul 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 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
php的declare控制符和ticks教程(附示例)
2014/03/21 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
php app支付宝回调(异步通知)详解
2018/07/25 PHP
JS 学习笔记 防止发生命名冲突
2009/07/30 Javascript
Javascript学习笔记9 prototype封装继承
2010/01/11 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
javascript数组的使用
2013/03/28 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
python实现DES加密解密方法实例详解
2015/06/30 Python
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
一封普通求职者的求职信
2013/11/20 职场文书
实习生单位鉴定意见
2013/12/04 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
出国留学自荐信模板
2015/03/06 职场文书
Python3中PyQt5简单实现文件打开及保存
2021/06/10 Python
Python使用pandas导入csv文件内容的示例代码
2022/12/24 Python