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

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

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

时间: 2024-08-05 14:44:21

league之csv导出的相关文章

yii的csv导出

数据导出,简单的csv导出, public static function export($parameter){ if (is_array($parameter)) { $filename = date('Y-m-d_H-i-s') . '.csv'; header('Content-Type: text/csv'); header("Content-Disposition: attachment;filename={$filename}"); $fp = fopen('php://

MySQL通过自增一列在Select ... into outfile...里面实现CSV导出带字段的效果

CSV的样例中Select ... into outfile...是不带字段名的,只导出数据,所以需要自己想另外的办法实现,这里有一个笨招,自己构造一个字段列,示例如下: 1,创建测试表数据CREATE TABLE test.c SELECT 1 AS pid,1 AS item,15.0 AS wgt UNION ALLSELECT 1 AS pid,2 AS item,20.0 AS wgt UNION ALLSELECT 1 AS pid,3 AS item,30.0 AS wgt UNI

android之csv导出

1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.FileReader; 6 import java.io.IOException; 7 import java.io.OutputStreamWriter; 8 import java.util.ArrayList;

php csv 导出

<?phpheader('content-type:text/html;charset=utf-8'); $mysqli = new mysqli('localhost', 'root', '', 'c');if ($mysqli->errno) { die('Connect Error' . $mysqli->error);}$mysqli->set_charset('UTF8'); export_csv(); function export_csv() { $filename

CSV导出大量数据

$csvname = $csvname . '.csv'; header('Content-Type: application/vnd.ms-excel;charset=GB2312'); header('Content-Disposition: attachment;filename="' . $csvname . '"'); header('Cache-Control: max-age=0'); header('Last-Modified: ' . gmdate('D, d M Y

php csv导出

/** * 下载csv * @param unknown $orders_id * @param unknown $orders_date_start * @param unknown $orders_date_end */ public function csvDown($orders_id,$orders_date_start,$orders_date_end,$title='ordersSales'){ // 输出Excel文件头,可把user.csv换成你要的文件名 header('Co

mysql 大表拆分成csv导出

最近公司有一个几千万行的大表需要按照城市的id字段拆分成不同的csv文件. 写了一个自动化的shell脚本 在/home/hdh 下面 linux-xud0:/home/hdh # lltotal 16-rwxrwxrwx 1 root root 902 Dec 28 07:47 cf.sh-rwxrwxrwx 1 root root 6 Dec 28 07:47 id_1.txt-rwxrwxrwx 1 root root 6 Dec 27 20:00 log vim  cf.sh #!/bi

NodeJS CSV导出文件名和内容乱码解决

// 解决不同浏览器下载文件名称乱码 var userAgent = (req.headers['user-agent']||'').toLowerCase(); res.set('Content-Type', 'application/octet-stream;charset=utf-8'); if(userAgent.indexOf('msie') >= 0 || userAgent.indexOf('chrome') >= 0) { res.setHeader('Content-Disp

mysql导出csv

原网页 http://www.web-jia.com/view.php?a=12 今天有的需求要一些数据,现在这套系统用了mysql数据库了,没有sqlserver导出数据那么简单了 要数据想到最简单的当然是导出csv了 查了一下有outfile 可以用稍微设置一下就可以了还是挺不错的 select * from player into outfile 'd:/out.csv' fields terminated by ',' optionally enclosed by '' lines te