laravel中maatwebsite/excel的load不可以用的解决办法

今天项目需要提取excel的内容,composer require maatwebsite/excel
下边开始代码部分

public function readFile(\Maatwebsite\Excel\Excel $excel)
{
	   	$excel_file_path = storage_path('zip/weather_forecast/weather_forecast/Changzhi_2019030508.csv');
	   	$res = [];
	   	$excel->load($excel_file_path, function($reader) use( &$res ) {
	   		$reader = $reader->getSheet(0);
	   		$res = $reader->toArray();
	   	},'UTF-8');
	   	for($i = 1; $i<count($res); $i++){
	   		echo '<pre>';
	   		var_dump($res[$i]);
	   		echo '</pre>';
	   	}
}

这个时候发现会报错,错误代码如下

Call to undefined method Maatwebsite\Excel\Facades\Excel::load()

意思就是说没有load这个方法,后来网上搜了一下,发现原因是2.1版本的load才可以用,因为我下载安装包的时候没有指定版本信息默认是最新版本-3.0+,如果要使用load的话可以重新指定版本

composer require "maatwebsite/excel:~2.1.0"

这样就可以用了

Laravel ,使用多线程导入大量的 Excel 文件可以提高导入效率。以下是一个简单的示例: 首先,安装 `maatwebsite/excel` 扩展包来处理 Excel 文件: ```bash composer require maatwebsite/excel ``` 然后,在控制器编写代码: ```php use Maatwebsite\Excel\Facades\Excel; use App\Imports\UsersImport; use Illuminate\Http\Request; class UserController extends Controller { public function import(Request $request) { // 获取上传的 Excel 文件 $file = $request->file('file'); // 使用多线程导入 Excel 文件 Excel::filter('chunk')->load($file)->chunk(1000, function ($results) { foreach ($results as $row) { // 将每一行数据插入到数据库 $user = new User; $user->name = $row->name; $user->email = $row->email; $user->save(); } }); } } ``` 在上面的代码,我们使用了 `chunk` 过滤器来将 Excel 文件分成多个块进行导入。`chunk` 方法将每个块作为参数传递给回调函数,然后您可以在回调函数使用 `foreach` 循环来处理每个块的行。 此外,您还可以通过调用 `chunkSize` 方法来指定每个块的大小。在上面的示例,我们将每个块的大小设置为 1000 行。 最后,您需要创建一个 `UsersImport` 类,该类将 Excel 文件转换为数组。以下是一个示例: ```php namespace App\Imports; use Maatwebsite\Excel\Concerns\ToArray; use Maatwebsite\Excel\Concerns\WithHeadingRow; class UsersImport implements ToArray, WithHeadingRow { public function toArray(array $rows) { return $rows; } } ``` 在上面的示例,我们实现了 `ToArray` 和 `WithHeadingRow` 接口,这两个接口允许我们将 Excel 文件转换为数组,并跳过表头行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yietion

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值