码迷,mamicode.com
首页 > 其他好文 > 详细

league之csv导出

时间:2019-03-04 20:48:25      阅读:387      评论:0      收藏:0      [点我收藏+]

标签:insert   lte   mfile   原因   gb2312   取消   function   导出   highlight   

 

有的时候当我们导出文件时,如果文件比较小可以使用phpexcel,但是当文件太大时就会遇到很多瓶颈(excel条数限制、导出时间太长等)。

这个时候要么使用excel分批次导出,要么就需要使用csv导出。但是,分批次导出还需要合并。纯csv的话,导出的文件又不好看,还要转换成excel。

最近看到一个插件,导出csv文件,但最终形成的是excel,确实方便,记录下

官网是这里:https://packagist.org/packages/league/csv

composer:git下载

1.新建csv文件夹

  技术图片

 

2.csv下安装

  composer require league/csv

 3.引用

use League\Csv\Reader;
use League\Csv\Writer;
use SplTempFileObject;

  注意,报错:

技术图片

  的话,原因是缺少引用。在代码最前面加入include(‘vendor/autoload.php‘);即可。

4.看代码

   

include(‘vendor/autoload.php‘);
use League\Csv\Reader;
use League\Csv\Writer;

$head = [‘名称‘, ‘价格‘];
$data = getData();
// 转编码
//foreach ($head as $k => $v) {
//   $head[$k] = iconv("UTF-8", "GB2312//IGNORE", $v);
//}

$csv = Writer::createFromFileObject(new \SplTempFileObject());
$csv->insertOne($head);
$csv->insertAll($data);		
$csv->output(‘csv_demo‘ . date(‘Ymd‘) . ‘.csv‘);
die;

function getData(){
	$pdo = new PDO("mysql:host=localhost;dbname=dian","root","");
        $sql = ‘SELECT * FROM address‘;
        $rows = $pdo->query($sql);//执行的是select语句,返回值是PDOStatement对象。
        $rows->setFetchMode(PDO::FETCH_ASSOC);//取消数字id索引
        $rows = $rows->fetchAll();

$data = [];
    foreach($rows as $k=>$v) {
        $data[] = [
            ‘date‘               => $v[‘comname‘],
            ‘loan_amount‘        => $v[‘comaddress‘],
        ];
    }

    return $data;
}

  先暂时以导出为例,导入后续再研究

league之csv导出

标签:insert   lte   mfile   原因   gb2312   取消   function   导出   highlight   

原文地址:https://www.cnblogs.com/two-bees/p/10472921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!