Rumah  >  Artikel  >  rangka kerja php  >  Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Excel untuk melaksanakan import dan eksport Excel?

Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Excel untuk melaksanakan import dan eksport Excel?

王林
王林asal
2023-06-13 14:55:002650semak imbas

Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Excel untuk melaksanakan import dan eksport Excel?

Semasa pembangunan, jadual Excel sering digunakan untuk pemprosesan data, seperti import dan eksport data. Laravel Excel ialah sambungan Laravel yang ringkas dan berkuasa yang membolehkan kami memproses fail Excel dengan mudah, termasuk operasi membaca, menulis dan mengeksport fail Excel. Dalam artikel ini, kami akan memperkenalkan cara melaksanakan import dan eksport Excel menggunakan Laravel Excel.

  1. Pasang Laravel Excel

Menggunakan Laravel Excel dalam projek Laravel adalah sangat mudah Anda hanya perlu menambah kebergantungan pakej laravel-excel pada composer.json fail. Jalankan arahan berikut dalam baris arahan:

composer require maatwebsite/excel
  1. Mengkonfigurasi Laravel Excel

Selepas memasang Laravel Excel, kita perlu melakukan beberapa konfigurasi untuk menggunakannya. Mula-mula, tambah kod berikut pada fail config/app.php:

'providers' => [
    // ...
    MaatwebsiteExcelExcelServiceProvider::class,
  ],

'aliases' => [
    // ...
    'Excel' => MaatwebsiteExcelFacadesExcel::class,
  ],

Kemudian, kita perlu menerbitkan fail konfigurasi Laravel Excel dan laksanakan arahan berikut:

php artisan vendor:publish --provider="MaatwebsiteExcelExcelServiceProvider" --tag=config

Ini akan dijana dalam direktori konfigurasi Fail excel.php, kita boleh membuat beberapa konfigurasi dalam fail ini, seperti format fail eksport, nama fail eksport lalai, dsb.

  1. Eksport fail Excel

Seterusnya, kami akan memperkenalkan cara menggunakan Laravel Excel untuk mengeksport fail Excel.

3.1 Buat kelas eksport

Pertama, kita perlu mencipta kelas eksport untuk menentukan format dan kandungan data yang dieksport. Jalankan arahan berikut dalam baris arahan:

php artisan make:export UsersExport --model=User

Ini akan menjana kelas UsersExport dalam direktori aplikasi/Eksport, di mana format data dan kandungan fail Excel yang dieksport boleh ditakrifkan. Sebagai contoh, jika kami ingin mengeksport data jadual pengguna, kami boleh mentakrifkan kandungan berikut dalam kelas ini:

namespace AppExports;

use AppModelsUser;
use MaatwebsiteExcelConcernsFromCollection;

class UsersExport implements FromCollection
{
   public function collection()
   {
       return User::all();
   }
}

Dalam kod di atas, kami menentukan melalui antara muka FromCollection bahawa sumber data yang dieksport ialah semua data pengguna dalam model Pengguna.

Selain antara muka FromCollection, Laravel Excel juga menyediakan beberapa antara muka lain, seperti FromQuery dan FromView, dsb. Anda boleh memilih antara muka yang sepadan mengikut keperluan sebenar.

3.2 Gunakan kelas eksport untuk mengeksport fail Excel

Selepas menentukan kelas eksport, kita boleh memanggil kelas eksport melalui kod berikut untuk mengeksport data ke fail Excel:

use AppExportsUsersExport;
use MaatwebsiteExcelFacadesExcel;

public function export()
{
    return Excel::download(new UsersExport, 'users.xlsx');
}

Dalam kod di atas, kami menggunakan kaedah Excel::download() untuk mengeluarkan fail Excel, dengan parameter pertama ialah objek kelas eksport yang baru dibuat dan parameter kedua ialah nama fail Excel.

  1. Import fail Excel

Seterusnya, kami akan memperkenalkan cara menggunakan Laravel Excel untuk mengimport fail Excel.

4.1 Cipta kelas import

Pertama, kita perlu mencipta kelas import untuk menentukan format dan kandungan data yang diimport. Jalankan arahan berikut dalam baris arahan:

php artisan make:import UsersImport --model=User

Ini akan menjana kelas UsersImport dalam direktori aplikasi/Import, di mana format data dan kandungan fail Excel yang diimport boleh ditakrifkan. Sebagai contoh, jika kami ingin mengimport data daripada jadual Pengguna, kami boleh mentakrifkan kandungan berikut dalam kelas ini:

rreee

Dalam kod di atas, kami memetakan setiap baris data dalam fail Excel kepada sifat model Pengguna melalui antara muka ToModel pada jadual, dan tentukan baris pertama fail Excel sebagai pengepala (iaitu, nama atribut) melalui antara muka WithHeadingRow.

Selain antara muka ToModel dan WithHeadingRow, Laravel Excel juga menyediakan beberapa antara muka lain, seperti ToCollection dan ToModel, dll. Anda boleh memilih antara muka yang sepadan mengikut keperluan sebenar.

4.2 Gunakan kelas import untuk mengimport fail Excel

Selepas menentukan kelas import, kita boleh memanggil kelas import melalui kod berikut untuk mengimport data daripada fail Excel ke dalam pangkalan data:

namespace AppImports;

use AppModelsUser;
use MaatwebsiteExcelConcernsToModel;
use MaatwebsiteExcelConcernsWithHeadingRow;

class UsersImport implements ToModel, WithHeadingRow
{
    public function model(array $row)
    {
        return new User([
            'name'     => $row['name'],
            'email'    => $row['email'],
            'password' => Hash::make($row['password']),
        ]);
    }
}

Dalam kod di atas, kami menggunakan kaedah Excel::import() untuk mengimport fail Excel, dengan parameter pertama ialah objek kelas import yang baru dibuat dan parameter kedua ialah fail Excel yang dimuat naik.

  1. Kesimpulan

Melalui Laravel Excel, kami boleh melaksanakan fungsi import dan eksport fail Excel dengan mudah, sekaligus memudahkan proses pemprosesan data. Dalam pembangunan projek sebenar, menggunakan Laravel Excel boleh meningkatkan kecekapan pembangunan dan mengurangkan kos pembangunan. Semoga artikel ini bermanfaat kepada anda.

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Excel untuk melaksanakan import dan eksport Excel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn