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开发框架总结收藏
Apr 24 PHP
让你成为更出色的PHP开发者的10个技巧
Feb 25 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
php 根据url自动生成缩略图并处理高并发问题
Jan 23 PHP
php环境套包 dedeampz 伪静态设置示例
Mar 26 PHP
使用URL传输SESSION信息
Jul 14 PHP
YII2框架中使用yii.js实现的post请求
Apr 09 PHP
CodeIgniter整合Smarty的方法详解
Aug 25 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
Apr 07 PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 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
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
javascript中的startWith和endWith的几种实现方法
2013/05/07 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
前端js弹出框组件使用方法
2020/08/24 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
2018/02/03 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
[01:00:25]NB vs Secret 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
Python深入学习之上下文管理器
2014/08/31 Python
一个Python最简单的接口自动化框架
2018/01/02 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
python实现爬取图书封面
2018/07/05 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
pytorch forward两个参数实例
2020/01/17 Python
医院总经理职责
2013/12/26 职场文书
年度考核评语
2014/01/19 职场文书
网络管理专业求职信
2014/03/15 职场文书
课外科技活动总结
2014/08/27 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
财务个人年度总结范文
2015/02/26 职场文书
简短的人生哲理(38句)
2019/08/13 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
Win10系统下配置Java环境变量
2021/06/13 Java/Android
分享提高 Python 代码的可读性的技巧
2022/03/03 Python