需求: 本次将数据库中的数据导出成.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. Jquery列表中的导航菜单的应用

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  2. mac上访问samba服务器

    打开safari输入smb://ip,回车后出现输入用户名密码对话框,若是匿名则选择作为“客人”选项 例子 smb://192.168.2.3

  3. 高可用集群(HA)之DRBD原理和基础配置

    目录 1.工作原理图 2.用户空间工具 3.工作模式 4.实现主备故障自动切换 5.所需软件 6.配置文件 7.详细配置     1.配置通用属性信息     2.定义一个资源     3.初始化资源 ...

  4. ni

    坚强歌词 马天宇 - 坚强 天使的翅膀挥动着的光芒一路走来学会了坚强每一次你努力认真的模样让我很欣赏 雨天的路上会有一缕阳光温暖被淋湿的希望再小的河也能汇成海洋让我去远航 一路上陪伴我的目光是最感动的 ...

  5. mysql-protocol中对编码长度整数型的规则

    固定长度整型数值在mysql 协议中的应用之一就是affected row :这个要根据首字节来判断 1.如果首字节小于251;那么首字节就是它要表示的数值. 2.如果首字节等于251;那么它表示的就 ...

  6. DES、AES、TEA加密算法的比较

    1.     DES算法介绍: DES算法具有对称性, 既可以用于加密又可以用于解密.对称性带来的一个很大的好处在于硬件实现, DES 的加密和解密可以用完全相同的硬件来实现.DES 算法的明文分组是 ...

  7. C# 伪造 referer 提交数据

    private string SendRequest(string account, string cardNumber, string cardPass) { string targetUrl = ...

  8. HTTP协议及HTTP包

    HTTP协议用于在Internet上发送和接收消息.HTTP协议是一种请求-应答式的协议 ——客户端发送一个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包.HTTP协议使用可靠的TCP连 ...

  9. Linux系统编程(9)—— 进程之进程控制函数exec系列函数

    在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是: #include <unistd.h> extern char **environ; int exe ...

  10. eclipse的优化 gc.log

    原帖:http://www.javaeye.com/topic/756538 性能优化从身边做起. 首先建立评估体系,将workspace里所有的项目close掉,关闭eclipse.优化的用例就是启 ...