Laravel est un framework de développement PHP couramment utilisé, qui présente les caractéristiques d'un développement rapide et d'une maintenance facile. Dans le développement réel, cela implique souvent l’importation et l’exportation de données, plus précisément l’importation et l’exportation de fichiers Excel. Comment Laravel implémente-t-il l’importation et l’exportation de données ? Cet article explique comment importer et exporter des fichiers Excel via Laravel.
1. Installez Laravel Excel
Laravel Excel est un package pour PHPExcel, qui peut facilement importer et exporter des fichiers Excel. Par conséquent, avant d’implémenter l’importation et l’exportation, nous devons d’abord installer Laravel Excel.
Installez via Composer et exécutez la commande suivante :
composer require maatwebsite/excel
Une fois l'installation terminée, vous devez ajouter le contenu suivant à 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
Tout d’abord, voyons comment exporter un fichier Excel. Laravel Excel fournit un moyen de définir l'exportation de fichiers Excel de la même manière que vous définissez un modèle de données de base de données. Nous pouvons définir le contenu du fichier Excel exporté via un modèle Excel, puis remplir les données dans le modèle. Voici la méthode d'implémentation spécifique :
1. Définissez le modèle de fichier Excel
🎜Exécutez la commande suivante dans le répertoire racine du projet : 🎜rrreee🎜Cette commande générera une classe nommée UsersExport dans le répertoire app/Exports. Cette classe implémente l'interface FromModel et est utilisée pour exporter les données du modèle vers un fichier Excel. 🎜🎜2. Remplissez les données🎜🎜Après avoir défini le modèle de fichier Excel, nous devons le remplir de données via du code. Le code est implémenté comme suit : 🎜rrreee🎜3. Générer un fichier Excel🎜🎜Après avoir terminé le remplissage des données, vous pouvez générer le fichier Excel. Pour effectuer l'opération d'export, le code est implémenté comme suit : 🎜rrreee🎜Le code ci-dessus générera un fichier Excel nommé users.xlsx. 🎜🎜3. Importation de fichiers Excel🎜🎜L'importation de fichiers Excel est similaire à l'exportation de fichiers Excel. Vous avez également besoin d'un modèle de données pour importer les données du fichier Excel dans la base de données. Voici la méthode d'implémentation spécifique : 🎜🎜1. Définir un modèle de fichier Excel 🎜🎜Tout d'abord, vous devez définir une interface ContractsFromView pour implémenter le remplissage des données : 🎜rrreee🎜Après avoir implémenté l'interface, il doit le faire. être dans le répertoire resources/views/exports. Définissez un fichier nommé users.blade.php avec le code suivant : 🎜rrreee🎜Ce modèle remplira les données utilisateur dans un tableau HTML. 🎜🎜2. Importer des fichiers Excel🎜🎜Après avoir défini le modèle de données, vous pouvez importer les données dans la base de données via la fonctionExcel::import
de Laravel Excel. Le code spécifique est le suivant : 🎜rrreee🎜In. ce qui précède Dans le code, nous sélectionnons d'abord le fichier Excel via la zone de saisie, puis obtenons le fichier Excel et le convertissons en type tableau. Pour les données importées, nous pouvons les insérer dans la base de données à // $les utilisateurs peuvent être insérés dans la base de données ici
. 🎜🎜4. Résumé🎜🎜Laravel Excel nous a fourni une opération de type base de données, ce qui rend très simple l'importation et l'exportation de fichiers Excel. Laravel Excel fonctionne de manière transparente avec les modèles Eloquent et prend également en charge d'autres formats de fichiers tels que CSV, PDF et HTML. Il nous suffit d'installer Laravel Excel selon la méthode ci-dessus et de définir le modèle approprié pour importer et exporter des données dans Laravel. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!