[轮子] 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年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 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年前 评论

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