league之csv导出

Posted two-bees

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了league之csv导出相关的知识,希望对你有一定的参考价值。

 

有的时候当我们导出文件时,如果文件比较小可以使用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 LeagueCsvReader;
use LeagueCsvWriter;
use SplTempFileObject;

  注意,报错:

技术图片

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

4.看代码

   

include(‘vendor/autoload.php‘);
use LeagueCsvReader;
use LeagueCsvWriter;

$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导出的主要内容,如果未能解决你的问题,请参考以下文章

es实战之数据导出成csv文件

PHP之导出CSV文件

进阶学python之 pandas系列之导出为.csv文件

带有 read_csv 的嵌套 If 语句 [重复]

PHP 高效导入导出Excel(csv)方法之fgetcsv()和fputcsv()函数

Magicodes.IE之总体教程