Laravel開發:如何使用Laravel Excel和PHPOffice讀寫Excel文件?

隨著excel文件在商業和財務領域中的廣泛使用,將excel文件整合到web應用程序中已經成為開發人員所需的技能之一。由于laravel是一種流行的php框架,其生態系統中有許多包可以幫助我們讀寫excel文件。本文將介紹如何使用laravel excel和phpoffice庫在laravel應用程序中讀寫excel文件。

什么是Laravel Excel?

Laravel Excel是一個為Laravel框架開發的強大Excel處理工具。該工具提供了易于使用的API,可以幫助我們輕松地導入和導出Excel文件。該工具的一個主要優點是它允許直接操作Excel文件而無需依賴于Excel軟件。

安裝Laravel Excel可以通過Composer完成。在終端中進入Laravel項目的目錄,并運行下面的Composer命令:

composer require maatwebsite/excel

該命令將從Packagist下載最新版本的Laravel Excel并自動完成安裝過程。

立即學習PHP免費學習筆記(深入)”;

如何使用Laravel Excel導出Excel文件?

Laravel Excel提供了一個Excel類,它是一個代理類,通過它可以創建新的Excel文件或打開并編輯現有的Excel文件。我們可以使用該類在Laravel應用程序中導出Excel文件。

在項目中創建一個新的Excel文件,我們可以使用Laravel Excel提供的以下模板:

<?php namespace AppExports;  use MaatwebsiteExcelConcernsFromCollection; use MaatwebsiteExcelConcernsWithHeadings;  class ExampleExport implements FromCollection, WithHeadings {     public function headings(): array     {         return [             'ID',             'Name',             'Email',             'Phone',         ];     }      /**     * @return IlluminateSupportCollection     */     public function collection()     {         return User::select('id', 'name', 'email', 'phone')->get();     } }

在上面的代碼中,我們定義了一個名為ExampleExport的類。該類使用FromCollection和WithHeadings接口,這些接口提供了生成Excel文件所需的方法。

在headings()方法中,我們定義了Excel文件的標題,這些標題列在Excel工作表的第一行中。在collect()方法中,我們從數據庫中檢索用戶記錄并將其返還給調用該類的控制器。

要導出Excel文件,我們可以在控制器方法中實例化ExampleExport,如下所示:

public function export() {     return Excel::download(new ExampleExport, 'users.xlsx'); }

在上面的代碼中,我們使用Laravel Excel提供的download()方法從ExampleExport導出一個Excel文件。該方法需要兩個參數:第一個參數是ExampleExport實例,第二個參數是Excel文件名。

在瀏覽器中訪問導出方法的URL時,系統將會提示您下載users.xlsx文件。

如何使用Laravel Excel導入Excel文件?

讀取Excel文件并將其數據導入數據庫時,我們可以使用Laravel Excel提供的import()方法。該方法接受三個參數:文件對象、任務回調和工作表名稱。

為了演示如何導入Excel文件,我們將創建一個名為UserImport的類,如下所示:

<?php namespace AppImports;  use AppUser; use MaatwebsiteExcelConcernsToModel;  class UserImport implements ToModel {     public function model(array $row)     {         return new User([             'name' => $row[0],             'email' =&gt; $row[1],             'phone' =&gt; $row[2],         ]);     } }

在上面的代碼中,我們使用ToModel接口實現了UserImport類。ToModel接口提供了一個必需的model()方法,該方法將每一行Excel數據轉換為模型對象。在上面的代碼中,我們解析了Excel文件中的前三個列并將其用于創建新的用戶記錄。

在控制器中使用import()方法導入Excel文件,如下所示:

public function import(Request $request) {     $file = $request-&gt;file('file');     Excel::import(new UserImport, $file);     return redirect()-&gt;back()-&gt;with('success', 'Excel file imported successfully.'); }

在上面的代碼中,我們獲取上傳的Excel文件對象并通過Laravel Excel的import()方法將其導入到UserImport類中。如果導入成功,系統將向用戶發送帶有“Excel文件成功導入”的成功消息的重定向響應。

如何使用PHPOffice庫讀寫Excel文件?

PHPOffice是一個PHP庫,用于讀寫不同類型的辦公室文件,如Excel、Word和PowerPoint等。PHPOffice與Laravel Excel不同,它不是為特定的框架開發的,可以用于任何PHP應用程序中。

在安裝PHPOffice之前,您需要確保已安裝PHP Zip擴展和PHP XML擴展。

使用Composer安裝PHPOffice的Spreadsheet庫,可以使用以下命令:

composer require phpoffice/phpspreadsheet

要創建一個新的Excel文件,我們可以使用以下代碼:

<?php use PhpOfficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx;  $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet-&gt;setCellValue('A1', 'Hello World!'); $sheet-&gt;setCellValue('B1', 'This is PHPOffice.');  $writer = new Xlsx($spreadsheet); $writer-&gt;save('hello.xlsx');

在上面的代碼中,我們首先創建一個新的電子表格,并在其第一行的前兩個列中添加了“Hello World!”和“This is PHPOffice.”的單元格。然后,我們將電子表格保存到hello.xlsx文件中。

要打開和編輯現有的Excel文件,我們可以使用以下代碼:

<?php use PhpOfficePhpSpreadsheetIOFactory;  $spreadsheet = IOFactory::load('hello.xlsx'); $sheet = $spreadsheet->getActiveSheet(); $sheet-&gt;setCellValue('C1', 'This cell has been added.');  $writer = new Xlsx($spreadsheet); $writer-&gt;save('hello.xlsx');

在上面的代碼中,我們使用IOFactory類從磁盤加載現有的Excel文件。然后,我們打開了該文件的活動工作表,并向其添加了一個新的單元格。最后,我們將更新保存到原始文件中。

結論

在本文中,我們介紹了如何使用Laravel Excel和PHPOffice庫在Laravel應用程序中讀寫Excel文件。我們學習了如何使用Laravel Excel導出和導入Excel文件,以及如何使用PHPOffice庫創建、打開和編輯現有的Excel文件。這些技術應該使您能夠更輕松地整合Excel文件到您的Laravel應用程序中。

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享