需求: 本次将数据库中的数据导出成.csv文件(office可以打开),

 //数据的生成,根据你所选中的数据进行生成
//params:$activity_id -> 活动的id
//params:$form_id -> 导出数据中选中的活动id
public function exportData($activity_id,$form_id){
ini_set('memory_limit','500M');//设置允许最大内存
set_time_limit();//设置允许脚本运行的时间,单位为秒。如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,在此设置为300秒 $collection = "form_".$activity_id;
$form_id_arr = explode(',', $form_id);
//由于form_id在mongodb中保存的为int类型,因此需要对string中的值进行类型装换
for ($i=; $i <count($form_id_arr) ; $i++) {
$form_id_arr[$i] = intval($form_id_arr[$i]);
}
//根据传入的参数来进行获取数据
$list = MongoClassClient::getInstance()->where_in('form_id',$form_id_arr)->get($collection);
if($list){
foreach($list as $key => $val ){
unset($list[$key]['_id']); //删除多余的id字段
}
}
//print_r($list);
if(empty($list)){
exit("暂无数据");
}
$column_name = array();
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=" . iconv ( "UTF-8", "GBK", date("Y-m-d_H_i_s" , time())."-".$activity_id ) . ".csv" );//设置文件的名称
// 打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a');
foreach ($list as $key => $value) {
fputcsv($fp, $value);
}
ob_flush();
flush();
die();
}

以上是我个人使用的导出少量数据的方法,当然,也在网上找了一些导出大量数据的方法,代码和说明如下。

做项目时,想把数据导出保存到csv文件里,就查阅资料总结一下,把实现代码分享出来给大家,需要的朋友可以参考一下。
转自【B5教程网】:http://www.bcty365.com/content-10-595-1.html

set_time_limit();
ini_set ('memory_limit', '256M');
$db = $this->load->database('default',true);
$sql = "SELECT * FROM `t_mobile_number_section` $condition"; $query = $db->query($sql); $result = $query->result_array(); $filename = 'number'.time().'.csv'; header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0'); // 打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen('php://output', 'a'); // 输出Excel列名信息
$head = array($title['number_section'],$title['area_code'],$title['province'],$title['city']);
foreach ($head as $i => $v) {
// CSV的Excel支持GBK编码,一定要转换,否则乱码
$head[$i] = iconv('utf-8', 'gbk', $v);
} // 将数据通过fputcsv写到文件句柄
fputcsv($fp, $head); // 计数器
$cnt = ;
$limit = ; // 从数据库中获取数据,为了节省内存,不要把数据一次性读到内存,从句柄中一行一行读即可 $i = ; $count = ;
foreach ($result as $key => $val) {
$count ++;
$cnt ++; //每隔$limit行,刷新一下输出buffer,不要太大,也不要太小 ,大数据量时处理
if ($limit == $cnt) { //刷新一下输出buffer,防止由于数据过多造成问题
ob_flush();
flush(); //刷新buffer
$cnt = ;
}
$rows[$i] = iconv('utf-8', 'gbk', $val['number_section']);
$rows[$i+] = iconv('utf-8', 'gbk', $val['area_code']);
$rows[$i+] = iconv('utf-8', 'gbk', $val['province']);
$rows[$i+] = iconv('utf-8', 'gbk', $val['city']);
fputcsv($fp, $rows);
}

从数据库中导出.csv文件的更多相关文章

  1. 数据库数据导出CSV文件,浏览器下载

    直接上代码: def download(request): # 从数据库查询数据 data_list = Info.objects.all() # 定义返回对象 response = HttpResp ...

  2. 用BCP从SQL Server 数据库中导出Excel文件

    BCP(Bulk Copy Program)是一种简单高效的数据传输方式在SQL Server中,其他数据传输方式还有SSIS和DTS. 这个程序的主要功能是从数据库中查询Job中指定step的执行信 ...

  3. MySql数据库导出csv文件命令

    MySql数据库导出csv文件命令: MySql数据库导出csv文件命令: mysql> select first_name,last_name,email from account into ...

  4. CSV文件数据如何读取、导入、导出到新的CSV文件中以及CSV文件的创建

    CSV文件数据如何读取.导入.导出到新的CSV文件中以及CSV文件的创建 一.csv文件的创建 (1)新建一个文本文档: 打开新建文本文档,进行编辑. 注意:关键字与关键字之间用英文半角逗号隔开.第一 ...

  5. PHP导出CSV文件

    经常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限.这里的方法是利用fputcsv写CS ...

  6. mysql SQLyog导入导出csv文件

    1.选择数据库表 --> 右击属性 --> 备份/导出 --> 导出表数据作为 --> 选择cvs --> 选择下面的“更改” --> 字段 --> 变量长度 ...

  7. mysql导出csv文件excel打开后数字用科学计数法显示且低位变0的解决方法

    Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0. Excel打开csv文件时,只要字段值都是数字,它 ...

  8. MySQL直接导出CSV文件,并解决中文乱码的问题

    需求: 需要导出hr_users 表中的部分字段的数据,以前是用PHP写脚本,然后导出CSV文件. 在MySQL中,它自己就能导出CSV文件 ,只不过是有如下几个问题需要大家解决. 1. 生成文件不成 ...

  9. Win10使用mysqldump导出csv文件及期间遇到的问题

    作为测试,我们这里使用了名为testdb的数据库中的名为test_table的表,首先我们使用如下SQL来查看其中有何数据: select * from testdb.test_table 数据如下: ...

随机推荐

  1. 第二章——第二节 IPC机制的概述和使用

    一.Serialiable与Paracle ①.作用    ②.使用 二.Binder与AIDL ①.各自的作用 三.如何使用IPC机制 举例 四.IPC机制的原理 ①.流程图  ②.自己编译自动生成 ...

  2. export-data.js

    var timeBtnClick = (function() { function _todayClick() { $('.select-time .today').on('click', funct ...

  3. php pdf word excel 操作方法

    很早的时候,用php生成execl都是件麻烦的事,我一般都会用csv来替代,现在这类工具就很多了,并且比较成熟了.不光有excel的,word,pdf. 1,php excelreader操作exce ...

  4. Azure上A/D系列虚拟机到DS系列迁移(2)

    11. 该脚本会检测环境,停止虚拟机,拷贝VHD文件,创建磁盘等等,知道出现如下类似画面,他会暂停等待用户操作: 后面这几个步骤非常重要,关系到你后续的创建是否成功: 12. 进入D:\migvm目录 ...

  5. javascript prototype __proto__区别

    An Object's __proto__ property references the same object as its internal [[Prototype]] (often refer ...

  6. NOI十连测 第五测 T1

    #include<cstdio> #include<cstring> #include<cmath> #include<iostream> #inclu ...

  7. Silverlight 结合ArcGis

    原文 http://www.dotblogs.com.tw/justforgood/archive/2012/05/09/72064.aspx 终于有机会谈到ArcGis(觉得很冷门) ,不过既然都做 ...

  8. HttpClient工具类

    HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议. ...

  9. JavaEE Tutorials (29) - Duke辅导案例研究示例

    29.1Duke辅导应用的设计和架构44529.2主界面447 29.2.1主界面中使用的Java持久化API实体447 29.2.2主界面中使用的企业bean448 29.2.3主界面中使用的Web ...

  10. live555学习之RTSP连接建立以及请求消息处理过程

    1,RTSP连接的建立过程    RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话.    首先创建RTSP服务 ...