Laravel ist ein häufig verwendetes PHP-Entwicklungsframework, das sich durch schnelle Entwicklung und einfache Wartung auszeichnet. In der tatsächlichen Entwicklung geht es häufig um den Import und Export von Daten, genauer gesagt um den Import und Export von Excel-Dateien. Wie implementiert Laravel den Datenimport und -export? In diesem Artikel wird erläutert, wie Sie Excel-Dateien über Laravel importieren und exportieren.
1. Laravel Excel installieren
Laravel Excel ist ein Paket für PHPExcel, das problemlos Excel-Dateien importieren und exportieren kann. Daher müssen wir vor der Implementierung von Import und Export zunächst Laravel Excel installieren.
Installieren Sie über Composer und führen Sie den folgenden Befehl aus:
composer require maatwebsite/excel
Nachdem die Installation abgeschlossen ist, müssen Sie den folgenden Inhalt zu config/app.php
hinzufügen: 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
Zunächst sehen wir uns an, wie man eine Excel-Datei exportiert. Laravel Excel bietet eine Möglichkeit, den Export von Excel-Dateien ähnlich zu definieren, wie Sie ein Datenbankdatenmodell definieren. Wir können den Inhalt der exportierten Excel-Datei über eine Excel-Vorlage definieren und dann die Daten in die Vorlage einfügen. Das Folgende ist die spezifische Implementierungsmethode: 1. Definieren Sie die Excel-Dateivorlage. 🎜🎜Führen Sie den folgenden Befehl im Stammverzeichnis des Projekts aus: 🎜rrreee🎜Dieser Befehl generiert eine Klasse mit dem Namen UsersExport im Verzeichnis app/Exports. Diese Klasse implementiert die FromModel-Schnittstelle und wird zum Exportieren von Daten aus dem Modell in eine Excel-Datei verwendet. 🎜🎜2. Daten ausfüllen🎜🎜Nachdem wir die Excel-Dateivorlage definiert haben, müssen wir sie per Code mit Daten füllen. Der Code ist wie folgt implementiert: 🎜rrreee🎜3. Excel-Datei generieren🎜🎜Nach Abschluss der Datenbefüllung können Sie die Excel-Datei generieren. Um den Exportvorgang durchzuführen, wird der Code wie folgt implementiert: 🎜rrreee🎜Der obige Code generiert eine Excel-Datei mit dem Namen „users.xlsx“. 🎜🎜3. Der Import von Excel-Dateien erfolgt ähnlich wie der Export von Excel-Dateien. Sie benötigen außerdem ein Datenmodell, um die Daten in der Excel-Datei in die Datenbank zu importieren. Das Folgende ist die spezifische Implementierungsmethode: 🎜🎜1. Definieren Sie eine Excel-Dateivorlage. 🎜🎜Zuerst müssen Sie eine ContractsFromView-Schnittstelle definieren, um die Datenfüllung zu implementieren. Der Code wird wie folgt implementiert: 🎜rrreee🎜Nach der Implementierung der Schnittstelle muss dies erfolgen sich im Verzeichnis resources/views/exports befinden. Definieren Sie eine Datei mit dem Namen „users.blade.php“ mit dem folgenden Code: 🎜rrreee🎜Diese Vorlage füllt Benutzerdaten in eine HTML-Tabelle. 🎜🎜2. Excel-Dateien importieren🎜🎜Nachdem Sie das Datenmodell definiert haben, können Sie die Daten über die Funktion
Excel::import
in die Datenbank importieren. Der spezifische Code lautet wie folgt: 🎜rrreee🎜In Oben Im Code wählen wir zunächst die Excel-Datei über das Eingabefeld aus, rufen dann die Excel-Datei ab und konvertieren sie in einen Array-Typ. Für importierte Daten können wir sie unter // $users can be inserted into the Database here
in die Datenbank einfügen. 🎜🎜4. Zusammenfassung🎜🎜Laravel Excel hat uns eine datenbankähnliche Funktion zur Verfügung gestellt, die den Import und Export von Excel-Dateien sehr einfach macht. Laravel Excel arbeitet nahtlos mit Eloquent-Modellen zusammen und unterstützt auch andere Dateiformate wie CSV, PDF und HTML. Wir müssen Laravel Excel lediglich gemäß der oben genannten Methode installieren und das entsprechende Modell definieren, um Daten in Laravel zu importieren und zu exportieren. 🎜Das obige ist der detaillierte Inhalt vonSo importieren und exportieren Sie Excel in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!