Hướng dẫn how do i save an excel file in laravel 9? - làm cách nào để lưu tệp excel trong laravel 9?

Ngày 2 tháng 7 năm 2022C Category: Laravel Category : Laravel

Hi,

Bài viết này sẽ cung cấp ví dụ về xuất nhập khẩu excel của Laravel 9. Bước từng bước Giải thích Laravel 9 Nhập khẩu CSV. Bạn sẽ tìm hiểu tệp CSV xuất nhập khẩu trong Laravel 9. Từng bước giải thích Laravel 9 Nhập tệp Excel.

Chúng tôi sẽ sử dụng gói Composer Maatwebsite/Excel để nhập và xuất. Trong ví dụ này, tôi sẽ tạo một biểu mẫu đơn giản cho đầu vào nơi bạn có thể tải lên tệp CSV và tạo nhiều người dùng. Sau đó, tôi sẽ tạo một tuyến đường xuất sẽ tải xuống tất cả người dùng từ cơ sở dữ liệu trong một tệp Excel.

Vì vậy, hãy làm theo bước dưới đây để tạo chức năng nhập và xuất trong ứng dụng Laravel 9. Bạn có thể xuất tệp với tệp .csv, .xls và .xlsx.

Hướng dẫn how do i save an excel file in laravel 9? - làm cách nào để lưu tệp excel trong laravel 9?

Bước 1: Cài đặt Laravel 9

Bước này không bắt buộc; Tuy nhiên, nếu bạn chưa tạo ứng dụng Laravel, thì bạn có thể tiếp tục và thực hiện lệnh bên dưới:

composer create-project laravel/laravel example-app

Bước 2: Cài đặt gói Maatwebsite/Excel

Trong bước này, chúng tôi cần cài đặt gói MAATWEBSITE/Excel thông qua Trình quản lý gói Composer, vì vậy một lệnh thiết bị đầu cuối và Fire Bellow của bạn:

composer require psr/simple-cache:^1.0 maatwebsite/excel

Nếu, bạn đang sử dụng ít hơn các phiên bản Laravel 9 thì hãy sử dụng Lệnh Bellow:

composer require maatwebsite/excel

Bước 3: Tạo hồ sơ giả

Trong bước này, chúng tôi sẽ tạo một số bản ghi giả cho bảng người dùng, vì vậy chúng tôi có thể xuất chúng với người dùng đó. Vì vậy, chúng ta hãy chạy lệnh Tinker Bellow:

php artisan tinker

User::factory()->count(10)->create()

Bước 4: Tạo lớp nhập khẩu

Trong phiên bản Maatwebsite 3 cung cấp cách xây dựng lớp nhập khẩu và chúng tôi phải sử dụng trong bộ điều khiển. Vì vậy, nó sẽ là cách tuyệt vời để tạo lớp nhập khẩu mới. Vì vậy, bạn phải chạy lệnh sau và thay đổi mã sau trên tệp đó:

php artisan make:import UsersImport --model=User

app/Imports/UsersImport.php

namespace App\Imports;

use App\Models\User;

use Maatwebsite\Excel\Concerns\ToModel;

use Maatwebsite\Excel\Concerns\WithHeadingRow;

use Hash;

class UsersImport implements ToModel, WithHeadingRow

{

/**

* @param array $row

*

* @return \Illuminate\Database\Eloquent\Model|null

*/

public function model(array $row)

{

return new User([

'name' => $row['name'],

'email' => $row['email'],

'password' => Hash::make($row['password']),

]);

}

}

Bạn có thể tải xuống tệp csv demo từ đây: tệp csv demo.

Bước 5: Tạo lớp xuất khẩu

Phiên bản Maatwebsite 3 cung cấp cách xây dựng lớp xuất và chúng tôi phải sử dụng trong bộ điều khiển. Vì vậy, nó sẽ là cách tuyệt vời để tạo ra lớp xuất khẩu mới. Vì vậy, bạn phải chạy lệnh sau và thay đổi mã sau trên tệp đó:

php artisan make:export UsersExport --model=User

app/Exports/UsersExport.php

namespace App\Exports;

use App\Models\User;

use Maatwebsite\Excel\Concerns\FromCollection;

use Maatwebsite\Excel\Concerns\WithHeadings;

class UsersExport implements FromCollection, WithHeadings

{

/**

* @return \Illuminate\Support\Collection

*/

public function collection()

{

return User::select("id", "name", "email")->get();

}

/**

* Write code on Method

*

* @return response()

*/

public function headings(): array

{

return ["ID", "Name", "Email"];

}

}

Bước 6: Tạo bộ điều khiển

Trong bước này, chúng tôi sẽ tạo UserController với phương thức index (), export () và nhập (). Vì vậy, trước tiên, hãy tạo bộ điều khiển bằng cách làm theo lệnh và cập nhật mã trên đó.

php artisan make:controller UserController

Bây giờ, cập nhật mã trên tệp UserControll.

app/Http/Controllers/UserController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Exports\UsersExport;

use App\Imports\UsersImport;

use Maatwebsite\Excel\Facades\Excel;

use App\Models\User;

class UserController extends Controller

{

/**

* @return \Illuminate\Support\Collection

*/

public function index()

{

$users = User::get();

return view('users', compact('users'));

}

/**

* @return \Illuminate\Support\Collection

*/

public function export()

{

return Excel::download(new UsersExport, 'users.xlsx');

}

/**

* @return \Illuminate\Support\Collection

*/

public function import()

{

Excel::import(new UsersImport,request()->file('file'));

return back();

}

}

Bước 7: Tạo các tuyến đường

Trong bước này, chúng tôi cần tạo các tuyến đường cho danh sách người dùng, nhập người dùng và xuất người dùng. Vì vậy, hãy mở tệp "Routes/Web.php" của bạn và thêm tuyến sau.

routes/web.php

composer require psr/simple-cache:^1.0 maatwebsite/excel

0

Bước 8: Tạo tệp Blade

Trong bước cuối cùng, chúng ta hãy tạo người dùng.blade.php (Tài nguyên/lượt xem/user.blade.php) cho bố cục và chúng ta sẽ viết mã thiết kế ở đây và đặt mã sau:

resources/views/users.blade.php

composer require psr/simple-cache:^1.0 maatwebsite/excel

1

Chạy ứng dụng Laravel:

Tất cả các bước cần thiết đã được thực hiện, bây giờ bạn phải nhập lệnh đã cho bên dưới và nhấn Enter để chạy ứng dụng Laravel:

composer require psr/simple-cache:^1.0 maatwebsite/excel

2

Bây giờ, hãy truy cập trình duyệt web của bạn, nhập URL đã cho và xem đầu ra ứng dụng:

composer require psr/simple-cache:^1.0 maatwebsite/excel

3

Output:

Hướng dẫn how do i save an excel file in laravel 9? - làm cách nào để lưu tệp excel trong laravel 9?

Tôi hy vọng nó có thể giúp bạn...

Làm cách nào để tải lên một tệp excel lớn lên Laravel?

Khi xử lý các tệp lớn, tốt hơn là nhập dữ liệu bằng các khối lớn.Bạn có thể kích hoạt điều này bằng bộ lọc ('chunk');Để nhập nó vào các khối, bạn có thể sử dụng chunk ($ size, $ callback) thay vì nhận bình thường ().Tham số đầu tiên là kích thước của khối.Tham số thứ hai là một đóng cửa sẽ trả về kết quả.To import it into chunks you can use chunk($size, $callback) instead of the normal get() . The first parameter is the size of the chunk. The second parameter is a closure which will return the results.

Laravel Excel có miễn phí không?

Laravel Excel hoàn toàn miễn phí (MIT) để sử dụng, tuy nhiên gói được cấp phép là phần mềm bưu điện.completely free (MIT) to use, however the package is licensed as Postcardware.

Làm thế nào tôi có thể vượt qua tham số trong Laravel Excel?

Là tham số, chúng ta có thể chuyển các biến đến chế độ xem bằng cách sử dụng tham số thứ hai bên trong phương thức LoadView ().using the second parameter inside the loadView() method.