laravel如何做导入导出excel

2023年 8月 6日 60.1k 0

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

一、安装 Laravel Excel

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

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

composer require maatwebsite/excel

登录后复制

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

'providers' => [
// ...
MaatwebsiteExcelExcelServiceProvider::class,
],

'aliases' => [
// ...
'Excel' => MaatwebsiteExcelFacadesExcel::class,
]

登录后复制

二、Excel 文件导出

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

1.定义 Excel 文件模板

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

php artisan make:export UsersExport --model=User

登录后复制

该命令将在 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');
}
}

登录后复制

3.生成 Excel 文件

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

Excel::download(new UsersExport, 'users.xlsx');

登录后复制

以上代码将会生成一个名为 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
]);
}
}

登录后复制

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

@foreach($users as $user)

@endforeach

Name Email Gender
{{ $user['name'] }} {{ $user['email'] }} {{ $user['gender'] }}

登录后复制

这个模板将会把用户数据填充到一个 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 插入数据库
}
}

登录后复制

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

四、总结

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

以上就是laravel如何做导入导出excel的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论