使用 Laravel-Excel 进行 CSV/EXCEL 文件读写
2018-07-18 16:18
686 查看
https://blog.csdn.net/yiluohan0307/article/details/80229978
http://www.ptbird.cn/laravel-excel-csv.html
一、需求
项目需要从 csv 中导入数据并且写入到数据表中。
因为使用 Laravel 框架,因此就直接用了
Laravel-Excel进行数据的读写操作。
网上关于 Laravel-Excel 的使用方法有很多,比较推荐的是在 laravel学院上的一篇:
Laravel-Excel文档地址:
注意事项:
目前 Laravel-Excel 已经到了 3.0 版本,不再基于
PHPExcel,而是使用
PhpSpreadsheet。
但是现在 3.0 版本不能 import ,只能 export ,所以如果想要导入 excel/csv 只能使用 2.0 版本。
import 功能将在 3.1 版本加入(应该是能够等到的,我写文章的时候,9 days ago 作者还在 push 代码:https://github.com/Maatwebsite/Laravel-Excel/)。
二、安装配置 laravel-excel
我使用的是 laravel 5.6 版本:(laravel-excel 3.0 只能是 ^5.5 版本),安装的是
~2.1.0
Laravel 4 版本应当安装:
~1.3
1. 安装
composer require maatwebsite/excel ~2.1.0
2. 配置 config/app.php
在
providers数组中添加:
Maatwebsite\Excel\ExcelServiceProvider::class,
在
aliases数组中添加:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
3. 导出 Excel.php 配置文件
php artisan vendor:publish
这里可能会需要选择某个 tag 进行导出,根据需要输入要导出的配置文件的 tag 即可
三、导入 Excel
因为是使用的文件上传功能,因此将文件存储也加上去了。
因为
$path得到的文件地址没有
storage/app/,因此需要加上。
这里需要注意的是,laravel-excel 的 load 使用的 path 参数,是本地文件的目录,因此只需要给出本地文件目录地址即可,与 web 目录无关。
// 文件上传到了 storage/app/patient/xxxxx.txt $path = $request->file('file')->store('patient'); // dd($path); // $path = "patient/47QhWPGzUgBCLZewclupIWxwfwIQdeDdlyx4DA84.txt"; // 更新文件本地地址 $path = 'storage/app/' . $path; // 获取 csv 内容 $data = Excel::load($path, function ($reader) {}, 'GBK')->get(); dd($data);
关键的方法:
$data = Excel::load($path, function ($reader) {}, 'GBK')->get();
我是使用的
get()方法来获取数据,除此之外,也可以在回调函数中获取,但是没办法回调什么的
Excel::load($path,function($reader){ $data = $reader->all(); dd($data); })
相关文章推荐
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
- Java使用jxl对excel文件进行简单的读写
- 在 Laravel 使用扩展包maatwebsite/excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解 3ff8
- 在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能(转)
- Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
- 厚积薄发,丰富的公用类库积累,助你高效进行系统开发(4)----CSV、Excel、INI文件、独立存储等文件相关
- 使用pyExcelerator来读写 Excel文件
- 厚积薄发,丰富的公用类库积累,助你高效进行系统开发(4)----CSV、Excel、INI文件、独立存储等文件相关