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下用cookie统计用户访问网页次数的代码
May 09 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 PHP
php异常处理使用示例
Feb 25 PHP
php数据库备份还原类分享
Mar 20 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
php提交post数组参数实例分析
Dec 17 PHP
PHP程序员的技术成长规划
Mar 25 PHP
php英文单词统计器
Jun 23 PHP
PHP面向对象多态性实现方法简单示例
Sep 27 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
如何判断微信付款码和支付宝付款码
Apr 01 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
一个程序下载的管理程序(三)
2006/10/09 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
JavaScript常用对象的方法和属性小结
2012/01/24 Javascript
js不能跳转到上一页面的问题解决方法
2013/03/01 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
微信小程序如何调用图片接口API并居中显示
2019/06/29 Javascript
Vue发布项目实例讲解
2019/07/17 Javascript
vscode自定义vue模板的实现
2021/01/27 Vue.js
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现周期性抓取网页内容的方法
2015/11/04 Python
python3新特性函数注释Function Annotations用法分析
2016/07/28 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
Python实现针对json中某个关键字段进行排序操作示例
2018/12/25 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
Django REST framwork的权限验证实例
2020/04/02 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
最新茶叶店创业计划书
2014/01/14 职场文书
大学生志愿者感言
2014/01/15 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python