📅  最后修改于: 2023-12-03 15:08:41.035000             🧑  作者: Mango
在 Laravel 中,我们可以使用 Laravel Excel 来导入和导出 Excel 文件。在本文中,我们将讨论如何在 Laravel Excel 命令中导入 Excel 文件。
首先,我们需要安装 Laravel Excel。通过 Composer,我们可以运行以下命令来安装 Laravel Excel:
composer require maatwebsite/excel
Laravel Excel 已经被集成到 Laravel CLI 中,所以我们不需要单独安装它。
在导入 Excel 文件之前,我们需要准备好 Excel 文件。可以使用 Excel 手动创建文件,也可以使用其他工具自动生成文件。
Excel 文件应该包含表头和数据。例如,如果我们正在导入用户数据,我们的 Excel 文件可能如下所示:
| ID | Name | Email | |----|----------|----------------------| | 1 | John Doe | john.doe@example.com | | 2 | Jane Doe | jane.doe@example.com |
文件应该保存为 .xlsx
或 .xls
格式。
现在,我们可以使用 Artisan 命令来创建一个导入命令:
php artisan make:command ImportUsers
这将创建一个新的命令类 ImportUsers
,该命令位于 app/Console/Commands
目录中。
打开 ImportUsers
类并添加以下代码:
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Maatwebsite\Excel\Facades\Excel;
use App\Models\User;
class ImportUsers extends Command
{
protected $signature = 'import:users {file}';
protected $description = 'Import users from Excel file';
public function handle()
{
$file = $this->argument('file');
Excel::import($file, function ($row) {
User::create([
'name' => $row[1],
'email' => $row[2],
]);
});
$this->info('Users imported successfully.');
}
}
在这里,我们定义了一个带有单个参数 file
的 Artisan 命令签名,该参数是要导入的 Excel 文件的路径。在 handle()
方法中,我们使用 Excel::import()
方法导入 Excel 文件。此方法接受两个参数:要导入的文件和回调函数。
回调函数将在每行数据上调用一次。在这里,我们将用户记录添加到数据库中。
最后,我们输出导入数据的成功消息。
现在,我们可以使用 Artisan 命令运行导入命令:
php artisan import:users users.xlsx
在这里,我们指定了要导入的 Excel 文件的路径 users.xlsx
。
如果一切正常,我们将看到 “Users imported successfully.” 成功消息,并且 Excel 文件中的数据已被导入到数据库中。
在本文中,我们使用 Laravel Excel 的 Excel::import()
方法导入 Excel 文件。我们创建了一个新的 Artisan 命令来运行导入操作,并将每行数据添加到数据库中。通过这种方式,您可以轻松地将 Excel 数据导入到 Laravel 中的数据库中。