[轮子] EasyExcel,简易版导入、导入 Excel、CSV

file

每次碰到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 协议》,转载必须注明作者和本文链接
本帖由系统于 5年前 自动加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9

竟然看懂你的GitHub账号 just coding no bb

5年前 评论

@bobby 哈哈 几年前注册随便取的?

5年前 评论
xingchen

大数据有考虑过没
比如300万数据
直接load就挂了

5年前 评论

@xingchen 有分批 chunk 功能,但是几百万的数据搞不定了,需要切割文件逐个读取

5年前 评论
xingchen

你这玩意就是基于phpexcel包个皮

5年前 评论
xingchen

并且不支持中文,无论key还是val都显示不出来

5年前 评论

@xingchen 文章已经写清楚了,就是封装一些常用功能

5年前 评论
czy2020

@Rekkles 你这轮子要能完善下中文,其实也还挺好用的

5年前 评论
苟常兴

csv里的身份证号码读取出来变成了科学计数法,有没有什么方法不进行转换?

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!