• 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;
    }
    

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

  • 相关阅读:
    【转】ON_COMMAND ON_MESSAGE ON_NOTIFY区别与联系
    Eureka
    application.yml-mysql8
    sprigcloud
    springboot
    maven
    排序算法之基数排序
    排序算法之桶排序
    排序算法之计数排序
    排序算法之堆排序
  • 原文地址:https://www.cnblogs.com/two-bees/p/10472921.html
Copyright © 2020-2023  润新知