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();
    }
时间: 2024-08-09 23:04:48

Thinkphp 导出大量数据 csv格式的相关文章

mysql 导出导入数据 -csv

MySql数据库导出csv文件命令: mysql> select first_name,last_name,email from account into outfile 'e://output1.csv' fields terminated by ','optionally enclosed by ''lines terminated by '/n'; csv文件效果: sunny Grigoryan [email protected]           Jon Siegal [email 

Mongodb 导出json 和csv 格式数据

导出到json: $ mongoexport.exe  -d TestDB -c TestCollection -o  ./test.json 导出到csv: If you want to output CSV, you have to specify the fields in the order you want them. $ mongoexport.exe  --csv -f _id,f1,f2,f3,f4,f5,f6,f7 -d TestDB -c TestCollection -o

php 导出excle的.csv格式的数据时乱码问题

1.header('Content-Encoding: XXXX'); 有可能是编码问题:可以尝试UTF-8,GBK,GB2312,等编码格式 2.有可能是文件编码问题,虽然UTF-8不建议带BOM,但是导出的excle是微软的产品,所以需要把文件格式改成,UTF-8有BOM格式的.

MongoDb导出数据.CSV格式到EXCEL

切换到mongodb安装目录,切换到bin目录下 执行以下命令 mongoexport -d myDB -c mycol -f _id,name,password,adress --csv -o ./test.csv -d  表示 数据库 -c   表示 collection -f   需要提取的field用逗号分隔 -o  输出路径

Highcharts使用CSV格式数据绘制图表

Highcharts使用CSV格式数据绘制图表 CSV(Comma-Separated Values,逗号分隔值文本格式)是采用逗号分割的纯文本数据.通常情况下,每个数据之间使用逗号分割,几个相关数据组成一行,多行数据组成一个CSV格式数据.由于其纯文本的特点,所以各类数据库都可以直接导出和导入CSV格式的数据.下面就是一个简单的CSV格式数据: 模拟考试,成绩 1,85 2,93 3,95 4,91 5,97 6,94 7,89 其中,第一列是x轴的值,以后的每一列都是一个数据列.从第一行的第

Bash中使用MySQL导入导出CSV格式数据[转]

转自: http://codingstandards.iteye.com/blog/604541 MySQL中导出CSV格式数据的SQL语句样本如下: select * from test_info into outfile '/tmp/test.csv' fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n'; MySQL中导入CSV格式数据的SQL语句

Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,最后一位会被置为0

问题描述: Oracle通过PL/SQL Developer导出数据为CSV格式,VARCHAR2类型的字段如果存入的是数值(例如3307830000004059)太长,CSV文件该列会用科学计数法表示,即使选择该列,点击数据--.>分列,固定宽度,列数据格式选择文本,最后一位仍然会被置为0. 解决方法: Oracle通过PL/SQL Developer导出数据为CSV格式,新建一个Excel文件,点击数据-->自文本,选择之前导出的CSV文件,文件类型分隔符号,选择逗号,[选中所有列],然后

Nodejs fastCSV 实现数据的csv格式导出

Nodejs实现CSV格式的数据导出 使用的第三方包: fast-csv: npm install fast-csv async: npm install async mysql: npm install mysql 在这个实现中使用mysql数据源将mysql中的数据导入到对应的csv文件中. /** * 实现dump数据到csv文件数据中 * 导出csv数据模版 **/ var config = require('./info.json'); var fs = require("fs&quo

php导出excel数据使用csv替代xls格式

php导出excel数据使用csv替代xls格式 一直以来需要将某些后台数据导出来以供运营人员查看,因为他们都用excel.所以最初的选择是用phpExcel这个工具包来实现导出数据为xls格式,后来发现数据量比较大的情况下(超过1W),就比较慢了. http://www.zroran.com/it/php/9.html 之前使用phpexcel的过程如下 $objPHPExcel = new PHPExcel(); $excelobj = $objPHPExcel->setActiveShee