Thinkphp 导出大量数据 csv格式
public function test2() {
$user_count = M('department')->count();
$page = ceil($user_count / 10000);
$fp = fopen('c:\file.csv', 'w');
for ($p = 1; $p <= $page; $p++) {
$user = M('department')->page($p . ',10000')->select();
foreach ($user as $fields) {
foreach ($fields as $i => $v) {
$fields[$i] = iconv('utf-8', 'gbk', $v);
}
fputcsv($fp, $fields);
}
unset($user);
}
fclose($fp);
}
public function exportseller($begindate = '', $enddate = '', $areaid = 0, $search = '') {
ini_set('memory_limit','1024M');
set_time_limit ( 0 );
$where = array (); // 筛选条件集合
$areaid = session ( 'authority' ); // 区域经理角色限定查看区域
// 选择起止时间后,才显示记录
if (isset ( $_GET ['begindate'] ) && isset ( $_GET ['enddate'] )) {
$begindate = I ( 'get.begindate' );
$enddate = I ( 'get.enddate' );
$begindate .= " 00:00:00";
$enddate .= " 23:59:59";
$where ['r.createtime'] = array (
'between',
array (
$begindate,
$enddate
)
);
if (FALSE === empty ( $_GET ['search'] )) {
$search = I ( 'get.search' );
$where ['i.user'] = array (
'like',
'%' . $search . '%'
);
}
if ($areaid > 0) {
$where ['s.id_area'] = $areaid;
} elseif (FALSE === empty ( $_GET ['areaid'] )) {
$areaid = I ( 'get.areaid' );
$where ['s.id_area'] = $areaid;
} else {
}
$record = D ( 'Record' );
$xlsCell = array ('comp'=>'所属公司','sellername'=>'姓名','sellermobile'=>'手机号','sellerjob'=>'岗位','shopno'=>'店铺编号','shopname'=>'店铺名称','areaname'=>'所属市场','prodname'=>'商品名称','sellerjifen'=>'积分','seltime'=>'销售时间','wuliu'=>'物流码','jfcd'=>'积分码','card_num'=>'银行卡号','FGoodsCode'=>'产品编号','FGoodsName'=>'产品名称','FBillDate'=>'出入库时间','FClientCode'=>'经销商编号','FClientName'=>'经销商名称','istoo'=>'是否匹配');
$list = $record->sellerReport ( $where );
foreach ( $list as $i => $row ) {
$webdata=M('WebserviceData');
$map['box_code']=array('eq',$row['wuliu']);
$arr=$webdata->where($map)->find();
//$arr = $this->webServerData ( $row ['wuliu'] );
$row ['FGoodsCode'] = $arr ['FGoodsCode'];
$row ['FGoodsName'] = $arr ['FGoodsName'];
$row ['FBillDate'] = $arr ['FBillDate'];
$row ['FClientCode'] = $arr ['FClientCode'];
$row ['FClientName'] = $arr ['FClientName'];
$row ['istoo'] = $arr ['FClientCode'] == $row ['shopno'] ? '匹配' : '不匹配';
$str[$i]=array_iconv($row);
}
array_unshift($str,array_iconv($xlsCell));
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=" . iconv ( "UTF-8", "GB18030", "美容师统计报表".date('_YmdHis') ) . ".csv" );
$fp = fopen('php://output', 'a');
foreach ($str as $key=>$line)
{
fputcsv($fp,$line);
}
fclose($fp);
// \Admin\Model\ExcelModel::exportExcel ( '美容师统计报表', $xlsCell, $list );
}
die();
//end modify
$this->display();
}
Thinkphp 导出大量数据 csv格式的更多相关文章
- hive 导出如数为csv格式
hive导出csv格式的数据 命令如下: hive -e "select concat_ws(',',appKey,clickJson) adt.jsontest as st from &q ...
- mysql 导出导入数据 -csv
MySql数据库导出csv文件命令: mysql> select first_name,last_name,email from account into outfile 'e://output ...
- Mongodb 导出json 和csv 格式数据
导出到json: $ mongoexport.exe -d TestDB -c TestCollection -o ./test.json 导出到csv: If you want to outpu ...
- mongodb导出数据csv格式
mongoexport -d test -c item --type=csv -f salary,city,workYear,companyShortName -o user.csvmongoexpo ...
- php 导出excle的.csv格式的数据时乱码问题
1.header('Content-Encoding: XXXX'); 有可能是编码问题:可以尝试UTF-8,GBK,GB2312,等编码格式 2.有可能是文件编码问题,虽然UTF-8不建议带BOM, ...
- 【MySQL】数据导出导入成CSV格式
一.自动输出中文字符集 select * from db into outfile 'test.csv' CHARACTER SET gbk fields terminated by ',' opti ...
- PHP导出超大的CSV格式的Excel表方案
场景和痛点 说明 我们工作场景都常会导出相关的excel数据,有时候需要大量的数据,10W,100W都有可能 我们现有方案都是直接利用phpexcel等类库来操作,phpexcel的load加载或是写 ...
- Highcharts使用CSV格式数据绘制图表
Highcharts使用CSV格式数据绘制图表 CSV(Comma-Separated Values,逗号分隔值文本格式)是採用逗号切割的纯文本数据.通常情况下.每一个数据之间使用逗号切割,几个相关数 ...
- PL/SOL csv格式导出查询结果时出现某些列的数据被四舍五入了的解决办法
昨天用pl/sql从oracle数据库捞取数据时,发现导出的csv格式中某些列的数据被进行了四舍五入处理了,当然这些列都是纯数字的,百思不得其解,后来上网才,才得知了原因. 这并不是导出的CSV文件数 ...
随机推荐
- 015:索引、B+树
一. 索引 1. 索引的定义 索引是一种单独的.物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单.索引的作用 ...
- 升级oracle 9i到10g
从9i升级到10g两个方案可供选择: 一是利用oracle提供的一个升级实用程序dbua(database upgrade assistant)直接将9i的数据库升级到10g. 再有就是新建一个1 ...
- Centos7 / RHEL 7 双网卡绑定
http://www.cnblogs.com/hukey/p/6224969.html 1. 简要 双网卡绑定技术在centos7中使用了teaming技术,而在rhel6/centos7中使用 ...
- python的disutils创建分发包
python中的distutils包主要用创建共享包,安装包,在平时安装python模块的时候,使用的命令如下: python setup.py install 其实以上代码就是distuitls包提 ...
- TextBox 设置数据源的自动补全输入字符串功能
这个东西首先说明是不是自己原创,但是比较简单.所以讲起分享如下.主要是用到TextBox的自动补全属性,这个东西虽然自己以前经常用TextBox,但是补全从没接触过. 关键代码是在窗体载入时加载如下代 ...
- Unity Mecanim 动画系统
1. Animator 组件 Controller:使用的Animator Controller文件. Avatar:使用的骨骼文件. Apply Root Motion:绑定该组件的GameObje ...
- C#异步编程的一些认识
1.使用委托类型的BeginXXX,EndXXX 2.使用事件 3.使用aysnc,await关键字,会自动切换回UI线程,启动方法的线程可以被重用,线程没有阻塞.内部其实是封闭了Task类的Cont ...
- PHP - declare tick
今天看php手册,结构流程控制语句,翻到个没见过的关键字declare(申明的意思).于是稍稍看了下. 大概意思是:定义一段代码.关于他合适执行,怎么执行完全依照他的参数. 反正不知道什么意思.先来一 ...
- Proxmox VE 设置备忘
现在PROXMOX 虚拟机一共两个(使用的是N3700 cpu的一个小机器主要为了省电.) 一个是ROS,经过折腾,IK8速度还不错就是资源占用比较大特比下载数据大时对CPU占用很大:OpenWRT不 ...
- [Android]RecyclerView添加HeaderView出现宽度问题
通过getItemViewType方式判断HeaderView方式添加HeaderView的,结果发现有几个界面HeaderView宽度不能满屏. 于是对比了几种布局,发现LinearLayout为根 ...