iT邦幫忙

2025 iThome 鐵人賽

DAY 30
0
Modern Web

Laravel 是甚麼系列 第 30

安裝EXCEL套件

  • 分享至 

  • xImage
  •  

https://docs.laravel-excel.com/3.1/getting-started/installation.html


composer require maatwebsite/excel

最下面

貼上 php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config

會產生兩個資料夾
https://docs.laravel-excel.com/3.1/architecture/objects.html

下指令
php artisan make:export OrdersExport --model=Order

產生資料夾跟檔案

修改裡面的程式碼
下面

最前面

修改後的程式碼

<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;
use App\Models\Order;
use App\Http\Controllers\Controller;
use App\Notifications\OrderDelivery;
use Maatwebsite\Excel\Facades\Excel;
use App\Exports\OrdersExport; // ← 加這行
class OrderController extends Controller
{
    

    public function index(Request $request)
{

    $dataPerPage = 5;
        
        $orders = Order::with(['orderItems', 'orderItems.product', 'user'])
                      ->orderBy('created_at', 'desc')
                      ->whereHas('orderItems')
                      ->paginate($dataPerPage);
        
        return view('admin.orders.index', [
            'orders' => $orders,
            'orderCount' => Order::whereHas('orderItems')->count(),
        ]);

}

public function delivery($id)
{
    $order = Order::find($id);
    if ($order->is_shipped) {
        return response(['result' => false]);
    } else {
        $order->update(['is_shipped' => true]);
        $order->user->notify(new OrderDelivery());
        return response(['result' => true]);
    }

}

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

}


前端畫面加入
<div>
  <a href="/admin/orders/excel/export">匯出訂單</a>
</div>
 
加入路由Route::get('admin/orders/excel/export', 'Admin\OrderController@export');
 
要再執行一次畫面才會更新
php artisan serve
畫面上面顯示
 
按 下載檔案 顯示
 
對照資料表的內容
 
加入表頭的顯示
修改程式碼
 
程式碼

上一篇
有的四個網址
系列文
Laravel 是甚麼30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言