laravel-excel 3 impoirt export 實作範例

想讀寫 Excel 文件,看了老半天,只輸出了一個空白的 Excel檔,浪費好物 laravel-excel 應該有人寫完整實做吧,果真!

工作環境:
  laravel-6
  phpspreadsheet
  laravel-excel

記得要先裝 phpspreadsheet !

laravel-excel 安裝方法看這裏: https://docs.laravel-excel.com/3.1/getting-started/installation.html

使用Composer安裝:
composer require maatwebsite/excel

設定 config/app.php 的 providers:
+
Maatwebsite\Excel\ExcelServiceProvider::class,

設定 config/app.php 的 aliases:
+
'Excel' => Maatwebsite\Excel\Facades\Excel::class,

$
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"

執行成功後 vender/maatwebsite/config 下會多一個 excel.php



實做範例參看這裏: https://www.itsolutionstuff.com/post/laravel-57-import-export-excel-to-database-exampleexample.html

啟用內建資料庫
$
php artisan migrate

做一些測試用的資料
$
php artisan tinker
factory(App\User::class, 20)->create();

建立輸入 Controller(output: app/Imports/UsersImport.php)
$
php artisan make:import UsersImport --model=User

建立輸出 Controller(output: app/Exports/UsersExport.php)
$
php artisan make:export UsersExport --model=User

建立 excel 操作頁面 Controller(自建: app/Http/Controllers/ExcelController.php)

建立 excel 操作頁面 View(自建: resources/views/import.blade.php)

加入 routes (修改: routes/web.php)
+
Route::get('export', 'ExcelController@export')->name('export');
Route::get('excel', 'ExcelController@importExportView');
Route::post('import', 'ExcelController@import')->name('import');

留言

這個網誌中的熱門文章

使用 Excel 計算2個地點之間的直線距離

LINE 儲存的檔案傳到 email 不方便 很不方便 非常不方便 但是有解的筆記

Excel 巨集合併多個 Excel 檔案