php - 如何解决 Laravel Excel 工作表问题?
问题描述
我在哪里可以找到这个onlySheets
方法?
我想从包含名为“客户”的工作表的 Excel 文件中导入数据。
我创建了一个ClientsImport.php
文件:
<?php
namespace App\Imports;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
class ClientsImport implements WithMultipleSheets
{
// MULTIPLE SHEETS
public function sheets(): array
{
return [
'clients' => new ClientsSheetImport(),
];
}
// END MULTIPLE SHEETS
}
然后创建ClientSheetImport.php
文件以从给定的 Excel 文件中获取行并验证数据:
<?php
namespace App\Imports;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithValidation;
// use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithMappedCells;
use App\Client;
class ClientsSheetImport implements ToModel, WithValidation, WithMappedCells
{
/**
* @param array $row
*
* @return Client|null
*/
public function model(array $row)
{
return new Client([
'nrc_entrp' => $row['nrc_entrp'],
'raisoci' => $row['raisoci'],
]);
}
public function rules(): array {
return [
'nrc_entrp'=> 'required|unique:clients|max:20',
'raisoci'=> 'required|unique:clients|max:100',
];
}
public function mapping(): array
{
return [
'nrc_entrp' => 'B1',
'raisoci' => 'B2',
];
} // mapping
}
在ImportClientController.php
我想用这个给定的代码从 Excel 文件(“客户”表“)中导入一张表:
$import_client = new ClientsImport();
$import_client->onlySheets('clients');
Excel::import($import_client, $file_url);
但我收到了这个错误:
Call to undefined method App\Imports\ClientsImport::onlySheets()
我在哪里可以找到这个onlySheets
方法?
谢谢
解决方案
我这样做并且它有效。添加这个:
class UserImport implement ...{
use WithConditionalSheets;
public function conditionalSheets(): array
{
return [
'Sheet1' => new ReadImport(),
];
}
...
}
推荐阅读
- r - 有条件地匹配两列值时,为什么有几个
在打印到 RStudio 控制台的结果数据框中打印的值? - executable - 如何使您的可执行文件可信
- javascript - 如何使用 html2canvas 捕获多个 Canvas
- mongodb - BigQuery 中的行级原子合并替换
- webpack - Laravel 回显 Angular 6 webpack 错误。Echo 不是构造函数
- javascript - 使用猫鼬生成自动增量字段?
- java - Apache Geode CacheListenerAdapter 不工作
- alexa - 如何结束自定义 Alexa 技能的会话?
- c# - “无法验证真实对象 - 改用假对象”异常
- java - 通过 jdbc 模板使用两个数据源