Heim > PHP-Framework > Laravel > Hauptteil

So importieren und exportieren Sie Excel in Laravel

WBOY
Freigeben: 2023-05-20 20:42:35
Original
4146 Leute haben es durchsucht

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
Nach dem Login kopieren

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,
]
Nach dem Login kopieren

二、Excel 文件导出

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

1.定义 Excel 文件模板

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

php artisan make:export UsersExport --model=User
Nach dem Login kopieren

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

3.生成 Excel 文件

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

Excel::download(new UsersExport, 'users.xlsx');
Nach dem Login kopieren

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

在实现接口之后,需要在 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>
Nach dem Login kopieren

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

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

2. Excel-Datei exportieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage