隨著Excel檔案在商業和財務領域中的廣泛使用,將Excel檔案整合到網路應用程式中已成為開發人員所需的技能之一。由於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並自動完成安裝程序。
如何使用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' => $row[1], 'phone' => $row[2], ]); } }
在上面的程式碼中,我們使用ToModel介面實作了UserImport類別。 ToModel介面提供了一個必需的model()方法,該方法將每一行Excel資料轉換為模型物件。在上面的程式碼中,我們解析了Excel檔案中的前三個欄位並將其用於建立新的使用者記錄。
在控制器中使用import()方法匯入Excel文件,如下所示:
public function import(Request $request) { $file = $request->file('file'); Excel::import(new UserImport, $file); return redirect()->back()->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->setCellValue('A1', 'Hello World!'); $sheet->setCellValue('B1', 'This is PHPOffice.'); $writer = new Xlsx($spreadsheet); $writer->save('hello.xlsx');
在上面的在程式碼中,我們首先建立一個新的電子表格,並在其第一行的前兩個列中新增了「Hello World!」和「This is PHPOffice.」的儲存格。然後,我們將電子表格儲存到hello.xlsx檔案中。
要開啟和編輯現有的Excel文件,我們可以使用以下程式碼:
<?php use PhpOfficePhpSpreadsheetIOFactory; $spreadsheet = IOFactory::load('hello.xlsx'); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('C1', 'This cell has been added.'); $writer = new Xlsx($spreadsheet); $writer->save('hello.xlsx');
在上面的程式碼中,我們使用IOFactory類別從磁碟載入現有的Excel檔案。然後,我們開啟了該文件的活動工作表,並向其新增了一個新的儲存格。最後,我們將更新儲存到原始文件中。
結論
在本文中,我們介紹如何使用Laravel Excel和PHPOffice程式庫在Laravel應用程式中讀取和寫入Excel檔案。我們學習如何使用Laravel Excel匯出和匯入Excel文件,以及如何使用PHPOffice庫建立、開啟和編輯現有的Excel文件。這些技術應該使您能夠更輕鬆地整合Excel檔案到您的Laravel應用程式中。
以上是Laravel開發:如何使用Laravel Excel和PHPOffice讀取和寫入Excel檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!