LARAVEL LARACSV
  • PROGRAMMING TIPS
  • [Laravel] Export CSV với LaraCSV

    Export CSV với Laravel chưa bao giờ đơn giản đến thế. Dựa vào nhu cầu thống kế của từng dự án khác nhau củng như các hệ thống được xây dựng bằng Laravel. Hôm nay mình sẽ hướng dẫn các bạn thực hiện Export CSV với LaraCSV.

    Đầu tiên chúng ta cần 1 project Laravel bất kỳ. Việc cài đặt chắc mình sẽ không nói về nó phải không nào. Để tránh mất quá nhiều thời gian mình chỉ đề cập đến vấn đề install package và các bước thực hiện.



    LARAVEL LARACSV
    LARAVEL LARACSV

    1. Cài Đặt LaraCSV

    Đễ cài đặt LaraCSV các bạn có thể dùng composer chạy lệnh sau:

    [code language=”php”]

    composer require "usmanhalalit/laracsv:1.*@dev"

    [/code]

    2. Hướng dẩn sử dụng

    Việc cài đặt sẽ mất vài phút. Các bạn hãy chờ khi hoàn tất nhé.! Sau khi cài đặt xong việc cuối cùng là dùng thôi. Để dùng LaraCSV các bạn chỉ cần khai báo như sau:

    [code language=”php”]

    namespace App\Http\Controllers;

    use use Laracsv\Export as ExportCsv;

    class YourController extends Controller
    {
    protected $csv;
    function __construct(ExportCsv $csv) {
    $this->csv = $csv;
    }

    public function exportCsv(Request $request)
    {
    //Ex: tôi muốn export csv danh sách user;
    $users = User::get(); // All users
    $this->csv->build($users, [’email’, ‘name’])->download();
    }
    }

    [/code]

    Cũng với đoạn code trên tôi muốn export file csv với tên file tùy chỉnh tôi sẽ làm như sau.

    [code language=”php”]

    $this->csv->build($users, [’email’, ‘name’])->download(‘your-file-name.csv’);

    [/code]

    Vậy khi tôi muốn xem kết quả xuất ra như thế nào thì tôi sẽ làm như sau:

    [code language=”php”]

    $csv = $this->csv->getCsv();
    $csv->toHTML(); // To output the CSV as an HTML table
    $csv->jsonSerialize()(); // To turn the CSV in to an array

    [/code]

    Vậy tôi muốn export Csv với header colum thì tôi sẽ làm như sau:

    [code language=”php”]

    $this->csv->build($users, [’email’ => ‘Email’, ‘name’ => [‘Full Name’]])->download(‘your-file-name.csv’);

    [/code]

    Ngoài các method trên thì LaraCSV còn có thêm method xử lý event có tên là: beforeEach. Nếu chúng ta call method này thì nó sẽ được call trước khi csv được export ra.

    [code language=”php”]

    $this->csv->beforeEach(function(){
    // Tại đây bạn có thể xử thý data từ model. có thễ add, delete, or edit value tùy thích.
    //Ex: tôi thêm một trường vào
    $user->codevivu = "Long Phạm";
    });
    //Để export có thông tin trường mới bạn cần thêm vào đối tượng cần xuất ra theo như bên dưới.
    $this->csv->build($users, [’email’ => ‘Email’, ‘name’ => [‘Full Name’], ‘codevivu’ => ‘Author’])->download(‘your-file-name.csv’);

    [/code]



    Trên là những chia sẽ của mình về LaraCSV. Các bạn có thể tham khảo thêm tại github. Chúc các bạn thành công.

    Leaf

    "Thành công nuôi dưỡng sự hoàn hảo. Sự hoàn hảo lại nuôi lớn thất bại. Chỉ có trí tưởng tượng mới tồn tại."

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    4 mins