Cách ghi nội dung vào file Excel trong Laravel
Hướng dẫn chi tiết cách ghi nội dung vào file Excel trong Laravel bằng cách sử dụng thư viện Maatwebsite Excel
, giúp bạn dễ dàng xuất dữ liệu từ ứng dụng Laravel của mình ra file Excel.
Chúng ta sẽ sử dụng thư viện Maatwebsite Excel
để ghi nội dung vào file Excel trong Laravel. Thư viện này cung cấp các phương thức đơn giản và mạnh mẽ để xử lý việc xuất và ghi dữ liệu vào file Excel.
Bước 1: Cài đặt thư viện Maatwebsite Excel
Chạy lệnh sau trong terminal để cài đặt thư viện:
composer require maatwebsite/excel
Bước 2: Cấu hình Service Provider (áp dụng cho Laravel 5.4 trở xuống)
Mở file config/app.php
và thêm dòng sau vào mục providers
:
Maatwebsite\Excel\ExcelServiceProvider::class,
Và thêm vào aliases
:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
Bước 3: Tạo một Export Class
Chạy lệnh sau để tạo một Export class:
php artisan make:export UsersExport --model=User
Mở file app/Exports/UsersExport.php
và sửa đổi như sau:
namespace App\Exports;
use App\Models\User;
use Maatwebsite\Excel\Concerns\FromCollection;
class UsersExport implements FromCollection
{
public function collection()
{
return User::all();
}
}
Bước 4: Ghi nội dung vào file Excel
Bạn có thể xuất dữ liệu vào file Excel bằng cách sử dụng dòng mã sau trong controller:
namespace App\Http\Controllers;
use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
class UserController extends Controller
{
public function export()
{
return Excel::download(new UsersExport, 'users.xlsx');
}
}
Yêu cầu hệ thống (bằng tiếng Việt)
- Laravel 6.x trở lên
- PHP 7.3 trở lên
- Thư viện
maatwebsite/excel
phiên bản 3.1 trở lên
Cách cài đặt các thư viện để chạy được ghi nội dung vào file Excel trong Laravel
- Chạy lệnh
composer require maatwebsite/excel
để cài đặt thư viện. - Đảm bảo phiên bản Laravel và PHP của bạn đáp ứng yêu cầu tối thiểu của thư viện.
Lời khuyên
- Kiểm tra dữ liệu trước khi xuất ra Excel để tránh lỗi hoặc dữ liệu trống.
- Sử dụng các tính năng bổ sung của
Maatwebsite Excel
như format, styling để tạo file Excel chuyên nghiệp hơn.