laravel如何做导入导出excel

WBOY
Lepaskan: 2023-05-20 20:42:35
asal
4057 orang telah melayarinya

Laravel 是一款常用的 PHP 开发框架,它具有快速开发、易于维护等特点。在实际开发中,常常涉及到数据的导入和导出,更具体一些,就是 Excel 文件的导入和导出。Laravel 如何实现数据的导入和导出呢?本文将介绍如何通过 Laravel 实现 Excel 文件的导入和导出。

一、安装 Laravel Excel

Laravel Excel 是一个针对 PHPExcel 的封装,它可以轻松地实现 Excel 文件的导入和导出。因此,在实现导入和导出之前,我们需要首先安装 Laravel Excel。

通过 Composer 进行安装,执行如下命令:

composer require maatwebsite/excel
Salin selepas log masuk

安装完成后,需要在config/app.php中添加以下内容:

'providers' => [ // ... MaatwebsiteExcelExcelServiceProvider::class, ], 'aliases' => [ // ... 'Excel' => MaatwebsiteExcelFacadesExcel::class, ]
Salin selepas log masuk

二、Excel 文件导出

首先,我们来看如何导出 Excel 文件。Laravel Excel 提供了一种类似于定义数据库数据模型的方式来定义 Excel 文件的导出。我们可以通过一个 Excel 模板来定义导出的 Excel 文件内容,然后将数据填充到模板中。下面是具体的实现方法:

1.定义 Excel 文件模板

在项目的根目录下执行如下命令:

php artisan make:export UsersExport --model=User
Salin selepas log masuk

该命令将在 app/Exports 目录下生成一个名为 UsersExport 的类。该类实现了 FromModel 接口,用于将数据从模型中导出到 Excel 文件中。

2.填充数据

定义 Excel 文件模板后,我们需要通过代码向其中填充数据。代码实现如下:

namespace AppHttpControllers; use AppExportsUsersExport; use AppHttpControllersController; use MaatwebsiteExcelFacadesExcel; class UsersController extends Controller { public function export() { return Excel::download(new UsersExport, 'users.xlsx'); } }
Salin selepas log masuk

3.生成 Excel 文件

在完成数据填充后,就可以生成 Excel 文件了。执行导出操作,代码实现如下:

Excel::download(new UsersExport, 'users.xlsx');
Salin selepas log masuk

以上代码将会生成一个名为 users.xlsx 的 Excel 文件。

三、Excel 文件导入

导入 Excel 文件与导出 Excel 文件类似,同样需要有一个数据模型,用于将 Excel 文件中的数据导入到数据库中。以下是具体的实现方法:

1.定义 Excel 文件模板

首先,需要定义一个 ContractsFromView 接口来实现数据填充,代码实现如下:

namespace AppImports; use IlluminateContractsViewView; use MaatwebsiteExcelConcernsFromView; class UsersImport implements FromView { private $users; public function __construct(array $users) { $this->users = $users; } public function view(): View { return view('exports.users', [ 'users' => $this->users ]); } }
Salin selepas log masuk

在实现接口之后,需要在 resources/views/exports 目录下定义一个名为 users.blade.php 的文件,代码如下:

 @foreach($users as $user)  @endforeach 
Name Email Gender
{{ $user['name'] }} {{ $user['email'] }} {{ $user['gender'] }}
Salin selepas log masuk

这个模板将会把用户数据填充到一个 HTML 表格中。

2.导入 Excel 文件

在定义数据模型之后,就可以通过 Laravel Excel 的Excel::import函数将数据导入到数据库中了,具体代码如下:

namespace AppHttpControllers; use AppImportsUsersImport; use MaatwebsiteExcelFacadesExcel; class UsersController extends Controller { public function import() { $file = request()->file('file'); $users = Excel::toArray(new UsersImport, $file); // 可以在此处将 $users 插入数据库 } }
Salin selepas log masuk

在上述代码中,我们首先通过输入框选择 Excel 文件,然后获取 Excel 文件,将其转化为数组类型。对于导入的数据,我们可以在// 可以在此处将 $users 插入数据库处将其插入到数据库中。

四、总结

Laravel Excel 已经为我们提供了类似于数据库操作的方式,使 Excel 文件导入和导出变得非常简单。Laravel Excel 可以与 Eloquent 模型无缝协作,同时也支持其他格式的文件,例如 CSV、PDF 和 HTML。我们只需要按照上述方法安装 Laravel Excel 并定义合适的模型即可在 Laravel 中实现数据的导入和导出。

Atas ialah kandungan terperinci laravel如何做导入导出excel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!