Laravel은 일반적으로 사용되는 PHP 개발 프레임워크로 빠른 개발과 쉬운 유지 관리가 특징입니다. 실제 개발에서는 데이터 가져오기 및 내보내기, 특히 Excel 파일 가져오기 및 내보내기가 포함되는 경우가 많습니다. Laravel은 데이터 가져오기 및 내보내기를 어떻게 구현합니까? 이번 글에서는 Laravel을 통해 Excel 파일을 가져오고 내보내는 방법을 소개합니다.
1. Laravel Excel 설치
Laravel Excel은 Excel 파일을 쉽게 가져오고 내보낼 수 있는 PHPExcel용 패키지입니다. 따라서 가져오기 및 내보내기를 구현하기 전에 먼저 Laravel Excel을 설치해야 합니다.
Composer를 통해 설치하고 다음 명령을 실행합니다.
composer require maatwebsite/excel
설치가 완료된 후 config/app.php
에 다음 내용을 추가해야 합니다. 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 的文件,代码如下:
<table> <thead> <tr> <th>Name</th> <th>Email</th> <th>Gender</th> </tr> </thead> <tbody> @foreach($users as $user) <tr> <td>{{ $user['name'] }}</td> <td>{{ $user['email'] }}</td> <td>{{ $user['gender'] }}</td> </tr> @endforeach </tbody> </table>
这个模板将会把用户数据填充到一个 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 插入数据库
rrreee
먼저 Excel 파일을 내보내는 방법을 살펴보겠습니다. Laravel Excel은 데이터베이스 데이터 모델을 정의하는 방법과 유사하게 Excel 파일 내보내기를 정의하는 방법을 제공합니다. Excel 템플릿을 통해 내보낸 Excel 파일의 내용을 정의한 다음 템플릿에 데이터를 채울 수 있습니다. 구체적인 구현 방법은 다음과 같습니다.
1. Excel 파일 템플릿을 정의합니다.
🎜프로젝트의 루트 디렉터리에서 다음 명령을 실행합니다. 🎜rrreee🎜이 명령은 app/Exports 디렉터리에 UsersExport라는 클래스를 생성합니다. 이 클래스는 FromModel 인터페이스를 구현하고 모델의 데이터를 Excel 파일로 내보내는 데 사용됩니다. 🎜🎜2. 데이터 채우기🎜🎜엑셀 파일 템플릿을 정의한 후, 코드를 통해 데이터를 채워야 합니다. 코드는 다음과 같이 구현됩니다. 🎜rrreee🎜3. Excel 파일 생성🎜🎜데이터 채우기가 완료되면 Excel 파일을 생성할 수 있습니다. 내보내기 작업을 수행하기 위해 코드는 다음과 같이 구현됩니다. 🎜rrreee🎜위 코드는 users.xlsx라는 Excel 파일을 생성합니다. 🎜🎜3. Excel 파일 가져오기🎜🎜Excel 파일 가져오기는 Excel 파일 내보내기와 유사합니다. Excel 파일의 데이터를 데이터베이스로 가져오려면 데이터 모델도 필요합니다. 구체적인 구현 방법은 다음과 같습니다. 🎜🎜1. Excel 파일 템플릿 정의 🎜🎜먼저 데이터 채우기를 구현하려면 ContractsFromView 인터페이스를 정의해야 합니다. 코드는 다음과 같이 구현됩니다. 🎜rrreee🎜인터페이스를 구현한 후 resources/views/exports 디렉토리에 다음 코드를 사용하여 users.blade.php라는 파일을 정의하십시오: 🎜rrreee🎜이 템플릿은 사용자 데이터를 HTML 테이블에 채웁니다. 🎜🎜2. Excel 파일 가져오기🎜🎜데이터 모델을 정의한 후 Laravel Excel의Excel::import
함수를 통해 데이터를 데이터베이스로 가져올 수 있습니다. 🎜rrreee🎜In 위의 코드에서는 먼저 입력 상자를 통해 Excel 파일을 선택한 다음 Excel 파일을 구하여 배열 형식으로 변환합니다. 가져온 데이터의 경우 //$users는 여기에서 데이터베이스에 삽입할 수 있습니다
에서 데이터베이스에 삽입할 수 있습니다. 🎜🎜4. 요약🎜🎜Laravel Excel은 데이터베이스와 유사한 작업을 제공하여 Excel 파일을 매우 간단하게 가져오고 내보낼 수 있습니다. Laravel Excel은 Eloquent 모델과 원활하게 작동하며 CSV, PDF, HTML과 같은 다른 파일 형식도 지원합니다. 위의 방법에 따라 Laravel Excel을 설치하고 Laravel에서 데이터를 가져오고 내보내는 데 적합한 모델을 정의하기만 하면 됩니다. 🎜위 내용은 Laravel에서 Excel을 가져오고 내보내는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!