maatwebsite / laravel-excel-light
dev-master
2017-11-23 13:22 UTC
Requires
- php: >=5.6
- box/spout: ~2.7
- illuminate/support: ~5.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~5.1
This package is auto-updated.
Last update: 2022-02-01 13:01:15 UTC
README
没有进一步开发和/或支持的计划。这只是改进 Laravel-Excel 库的一个实验。
使用 Spout 的速度,在 Laravel 中以更快速和更简洁的方式导入和导出 Excel 和 CSV。
安装
composer require maatwebsite/laravel-excel-light
在 app.php 中添加 Service Provider
Maatwebsite\ExcelLight\LaravelExcelServiceProvider::class
可以将 Excel 类注入到你的服务中
public function __construct(\Maatwebsite\ExcelLight\Excel $excel)
可选地,您还可以注入 Reader 和 Writer
public function __construct(\Maatwebsite\ExcelLight\Reader $reader)
public function __construct(\Maatwebsite\ExcelLight\Writer $writer)
读取
流畅使用
$excel->load(storage_path('workbook.xlsx'), function (Reader $reader) { $reader->sheets(function (Sheet $sheet) { $sheet->rows(function (Row $row) { // Get a column $row->column('heading_key'); // Magic get $row->heading_key; // Array access $row['heading_key']; }); }); });
经典使用
$reader = $excel->load(storage_path('workbook.xlsx')); foreach ($reader->sheets() as $sheet) { foreach ($sheet->rows() as $row) { $row->column('heading_key'); foreach ($row->cells() as $cell) { } } }
写入
$excel->create(function (Writer $writer) { $writer->sheet('sheet1', function (Writer $sheet) { $sheet->rows([ [1, 2, 3], [4, 5, 6] ]); // Add more rows $sheet->rows([ [7, 8, 9], [10, 11, 12] ]); }); })->export(storage_path('workbook.xlsx'));
自定义读取器和写入器
注册自定义读取器
$this->app->make(\Maatwebsite\ExcelLigt\ExcelManager::class)
->registerReader('driverName', function() {
return YourReader();
});
注册自定义写入器
$this->app->make(\Maatwebsite\ExcelLigt\ExcelManager::class)
->registerWriter('driverName', function() {
return YourWriter();
});
解析自定义读取器和写入器
__construct(ExcelManager $manager) {
$reader = $manager->reader('driverName');
$writer = $manager->writer('driverName');
}