Rumah > rangka kerja php > Laravel > teks badan

Bagaimana untuk mengimport dan mengeksport excel dalam laravel

WBOY
Lepaskan: 2023-05-20 20:42:35
asal
4147 orang telah melayarinya

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
Salin selepas log masuk

Selepas pemasangan selesai, anda perlu menambah kandungan berikut dalam config/app.php:

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

'aliases' => [
    // ...
    'Excel' => MaatwebsiteExcelFacadesExcel::class,
]
Salin selepas log masuk

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
Salin selepas log masuk

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');
    }
}
Salin selepas log masuk

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');
Salin selepas log masuk

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
        ]);
    }
}
Salin selepas log masuk

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>
Salin selepas log masuk

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 插入数据库
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan