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 相关文章推荐
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
Feb 22 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
Nov 02 PHP
分享一个PHP数据流应用的简单例子
Jun 01 PHP
php实现在限定区域里自动调整字体大小的类实例
Apr 02 PHP
试用php中oci8扩展
Jun 18 PHP
php异常处理方法实例汇总
Jun 24 PHP
php实现源代码加密的方法
Jul 11 PHP
php冒泡排序与快速排序实例详解
Dec 07 PHP
smarty的section嵌套循环用法示例
May 28 PHP
php数组指针操作详解
Feb 14 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 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
DOM XPATH获取img src值的query
2013/09/23 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
jQuery 动态云标签插件
2014/11/11 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
JS正则表达式修饰符中multiline(/m)用法分析
2016/12/27 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
vue.js项目打包上线的图文教程
2017/11/16 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
微信小程序开发打开另一个小程序的实现方法
2020/05/17 Javascript
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
[10:28]2018DOTA2国际邀请赛寻真——VGJ.S寻梦之路
2018/08/15 DOTA
python实现可视化动态CPU性能监控
2018/06/21 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
利用简洁的图片预加载组件提升html5移动页面的用户体验
2016/03/11 HTML / CSS
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
团委竞选演讲稿
2014/04/24 职场文书
关于旅游的活动方案
2014/08/15 职场文书
个人党性分析材料
2014/12/19 职场文书
开平碉楼导游词
2015/02/06 职场文书
2015教师年度考核评语
2015/03/25 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
实用求职信模板范文
2019/05/13 职场文书
python通过函数名调用函数的几种方法总结
2021/06/07 Python
MySQL的索引你了解吗
2022/03/13 MySQL
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL