Laravel ialah rangka kerja pembangunan PHP yang biasa digunakan, yang mempunyai ciri-ciri pembangunan pesat dan penyelenggaraan yang mudah. Dalam pembangunan sebenar, ia selalunya melibatkan import dan eksport data, lebih khusus, import dan eksport fail Excel. Bagaimanakah Laravel melaksanakan import dan eksport data? Artikel ini akan memperkenalkan cara mengimport dan mengeksport fail Excel melalui Laravel.
1. Pasang Laravel Excel
Laravel Excel ialah pakej untuk PHPExcel, yang boleh mengimport dan mengeksport fail Excel dengan mudah. Oleh itu, sebelum melaksanakan import dan eksport, kita perlu memasang Laravel Excel terlebih dahulu.
Pasang melalui Composer dan laksanakan arahan berikut:
composer require maatwebsite/excel
Selepas pemasangan selesai, anda perlu menambah kandungan berikut dalam config/app.php
:
'providers' => [ // ... MaatwebsiteExcelExcelServiceProvider::class, ], 'aliases' => [ // ... 'Excel' => MaatwebsiteExcelFacadesExcel::class, ]
2 Fail Excel
Pertama, mari lihat cara mengeksport fail Excel. Laravel Excel menyediakan cara untuk mentakrifkan eksport fail Excel serupa dengan cara anda mentakrifkan model data pangkalan data. Kami boleh mentakrifkan kandungan fail Excel yang dieksport melalui templat Excel, dan kemudian mengisi data ke dalam templat. Berikut ialah kaedah pelaksanaan khusus:
1 Tentukan templat fail Excel
Jalankan arahan berikut dalam direktori akar projek:
php artisan make:export UsersExport --model=User
Arahan ini akan menjadi. dalam direktori app/Exports Jana kelas bernama UsersExport di bawah. Kelas ini melaksanakan antara muka FromModel dan digunakan untuk mengeksport data daripada model ke fail Excel.
2. Isikan data
Selepas menentukan templat fail Excel, kita perlu mengisinya dengan data melalui kod. Kod tersebut dilaksanakan seperti berikut:
namespace AppHttpControllers; use AppExportsUsersExport; use AppHttpControllersController; use MaatwebsiteExcelFacadesExcel; class UsersController extends Controller { public function export() { return Excel::download(new UsersExport, 'users.xlsx'); } }
3. Hasilkan fail Excel
Setelah selesai mengisi data, anda boleh menjana fail Excel. Untuk melaksanakan operasi eksport, kod tersebut dilaksanakan seperti berikut:
Excel::download(new UsersExport, 'users.xlsx');
Kod di atas akan menjana fail Excel bernama users.xlsx.
3. Mengimport fail Excel
Mengimport fail Excel adalah serupa dengan mengeksport fail Excel Anda juga memerlukan model data untuk mengimport data dalam fail Excel ke dalam pangkalan data. Berikut ialah kaedah pelaksanaan khusus:
1. Tentukan templat fail Excel
Pertama, anda perlu mentakrifkan antara muka ContractsFromView untuk melaksanakan pengisian data seperti berikut:
namespace AppImports; use IlluminateContractsViewView; use MaatwebsiteExcelConcernsFromView; class UsersImport implements FromView { private $users; public function __construct(array $users) { $this->users = $users; } public function view(): View { return view('exports.users', [ 'users' => $this->users ]); } }
Dalam pelaksanaan Selepas antara muka, anda perlu mentakrifkan fail bernama users.blade.php dalam direktori resources/views/exports Kodnya adalah seperti berikut:
<table> <thead> <tr> <th>Name</th> <th>Email</th> <th>Gender</th> </tr> </thead> <tbody> @foreach($users as $user) <tr> <td>{{ $user['name'] }}</td> <td>{{ $user['email'] }}</td> <td>{{ $user['gender'] }}</td> </tr> @endforeach </tbody> </table>
Templat ini akan mengisi data pengguna ke dalam jadual HTML.
2. Import fail Excel
Selepas menentukan model data, anda boleh mengimport data ke dalam pangkalan data melalui fungsi Excel::import
Laravel Excel adalah seperti berikut:
namespace AppHttpControllers; use AppImportsUsersImport; use MaatwebsiteExcelFacadesExcel; class UsersController extends Controller { public function import() { $file = request()->file('file'); $users = Excel::toArray(new UsersImport, $file); // 可以在此处将 $users 插入数据库 } }
Dalam kod di atas, kami mula-mula memilih fail Excel melalui kotak input, kemudian dapatkan fail Excel dan tukarkannya kepada jenis tatasusunan. Untuk data yang diimport, kami boleh memasukkannya ke dalam pangkalan data di // 可以在此处将 $users 插入数据库
.
4. Ringkasan
Laravel Excel telah menyediakan kami operasi seperti pangkalan data, menjadikannya sangat mudah untuk mengimport dan mengeksport fail Excel. Laravel Excel berfungsi dengan lancar dengan model Eloquent dan turut menyokong format fail lain seperti CSV, PDF dan HTML. Kami hanya perlu memasang Laravel Excel mengikut kaedah di atas dan menentukan model yang sesuai untuk mengimport dan mengeksport data dalam Laravel.
Atas ialah kandungan terperinci Bagaimana untuk mengimport dan mengeksport excel dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!