Sử dụng Laravel Excel để Export và Import file.

Tram Ho

Giới thiệu

Laravel Excel là một trình bao bọc đơn giản nhưng thanh lịch xung quanh PhpSpreadsheet với mục tiêu đơn giản hóa việc export cũng như import file.
Và đây là PhpSpreadsheet cho những bạn đang thắc mắc và tự hỏi về nó
PhpSpreadsheet là một thư viện được viết bằng PHP thuần túy và cung cấp một tập hợp các lớp cho phép bạn đọc và ghi vào các định dạng tệp bảng tính khác nhau, như Excel và LibreOffice Calc.

Các chức năng của Laravel Excel

  • Dễ dàng xuất các bộ sưu tập sang Excel.
  • Xuất truy vấn với chunking tự động cho hiệu suất tốt hơn.
  • Xuất khẩu hàng đợi cho hiệu suất tốt hơn.
  • Dễ dàng xuất các chế độ xem Blade sang Excel.
  • Dễ dàng nhập vào bộ sưu tập.
  • Đọc tệp Excel trong khối.
  • Xử lý các chèn nhập theo từng batch.

Cài đặt

Để cài đặt Laravel Excel thì các bạn cần phải có các yêu cầu sau:

  • PHP: 7.0
  • Laravel: 5.5
  • PhpSpreadsheet: 1.6
  • Các PHP extension là php_zip, php_xml, php_gd2 đã được enabled

Sau khi đã có đủ các yêu cầu trên thì cá bạn cần cài đặt package này vào file composer.json của laravel project bằng cách mở terminal lên và chưởng câu này vào.

Lúc này MaatwebsiteExcelExcelServiceProvider sẽ tự động được đăng ký cho bạn. Tuy nhiên, nếu bạn muốn tự đăng ký thì có thể thêm đoạn này vào file config/app.php

Sử dụng

Export

Đầu tiên bạn cần tạo một export class trong thư mục App/Export. Hoặc có thể sử dụng command sau để tạo tự động:

Lúc này trong thư mục App/Exports sẽ có file của bạn vừa tạo ra. Cụ thể ở đây mình chạy lệnh php artisan make:export UsersExport --model=User nên sẽ có cấu trúc thư mục như thế này.

Lúc này file UsersExport.php của bạn sẽ như sau.

Bây giờ, bạn chỉ việc gọi class export đã tạo ở trên return Excel::download(new UsersExport, 'users.xlsx'); để export model User của bạn ra file users.xlsx.
Cuối cùng là thêm một đường dẫn để truy cập khi cần export nữa là tuyệt vời. Các bạn có thể tham khảo ở ví dụ bên dưới nhé.

Sau khi làm xong những việc trên thì các bạn chỉ cần chạy command php artisan serve rồi vào đường dẫn your-local-host:8000/users/export để xem và cảm nhận 😃

Import

Tương tự như lúc export, để có thể import được thì các bạn cũng cần phải tạo một import class trong thư mục App/Imports, còn việc tạo bằng sức cơm hay thông qua command php artisan make:import ImportName --model=ModelImportName thì mọi người tự quyết định nha.
Sau khi tạo xong thì cấu trúc thư mục của bạn sẽ như vậy.

Bây giờ hãy mở file UsersImport.php vừa tạo ở trên ra và thêm đoạn code phía dưới vào để thực hiện việc tạo User mới với mỗi row data mà chúng ta đã import được.

Cuối cùng là đưa vào controller để thực hiện việc import ✌️

Tổng kết

Trên đây là những điều cơ bản cần nắm để có thể export cũng như import file một cách i zì trong laravel.
Ngoài ra còn có rất nhiều chức năng hữu ích như export/import multiple sheet, export/import sử dụng queue, … mà thời gian cũng như trình english có hạn nên mình vẫn chưa thể tìm hiểu sâu hơn được.
Mọi người có thể truy cập vào trang document của package tại đây để tìm hiểu thêm ạ.
Cảm ơn vì đã đọc hết bài mà không có ném gạch 😃😃

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo