[轮子] EasyExcel,简易版导入、导入 Excel、CSV
每次碰到Excel的导入或者导出的问题都十分头疼,虽然有PHPExcel这样的工具,但是功能太多太杂,很多功能压根就用不上,只需要简单的从文件获取数据或者写入数据,所以写了个轮子简单的封装了一些常用功能。
Installation
$ composer require "rekkles/easyexcel" -vvv
Usage
use EasyExcel\Read\ExcelToArray;
use EasyExcel\Read\ChunkReadFilter;
//简单获取Excel的数据为Array
$config = ['firstRowAsIndex' => true];
$getData = new ExcelToArray('/Users/rekkles/code/data.csv', $config);
$getData->load();
var_dump($getData->getData());
//分批获取Excel的数据(防止内存泄漏)
$chunk = new ChunkReadFilter();
$chunk->setRows(10, 2);
$data = new ExcelToArray('/Users/rekkles/code/data.csv', $config);
var_dump($data->loadByChunk($chunk)->getData());
//写入Excel 生成文件到指定目录
$outObj = new ArrayToExcel(array(
'fileName' => 'test.csv', //导出的excel的文件的名称
'creator' => 'Rekkles', //创建者
'writeType' => 'CSV', //输出类型 Excel5 Excel7 CSV
'path' => ROOT_PATH.'file/', //输出路径 确保有写入权限
));
$firstRow = array(1111,2222,3333);
$content = array(
['aaa','bbb','ccc'],
['ddd','eee','fff']);
$outObj->setFirstRow($firstRow)->fillData(content);
Documentation
目前是第一版,功能还在逐渐完善中。
代码不是很复杂,针对PHPExcel封装了一部,
遇到问题可以自行debug,有bug提交PR就更好了!
Feature
1.批量导入、导出
2.支持更多的文件格式
项目地址:EasyExcel
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 6年前 自动加精
竟然看懂你的GitHub账号 just coding no bb
@bobby 哈哈 几年前注册随便取的?
大数据有考虑过没
比如300万数据
直接load就挂了
@xingchen 有分批 chunk 功能,但是几百万的数据搞不定了,需要切割文件逐个读取
你这玩意就是基于phpexcel包个皮
并且不支持中文,无论key还是val都显示不出来
@xingchen 文章已经写清楚了,就是封装一些常用功能
@Rekkles 你这轮子要能完善下中文,其实也还挺好用的
csv里的身份证号码读取出来变成了科学计数法,有没有什么方法不进行转换?