Rumah  >  Artikel  >  rangka kerja php  >  Pembangunan Laravel: Bagaimana untuk mengimport dan mengeksport fail Excel menggunakan Laravel Excel?

Pembangunan Laravel: Bagaimana untuk mengimport dan mengeksport fail Excel menggunakan Laravel Excel?

王林
王林asal
2023-06-15 16:13:313119semak imbas

Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Excel untuk mengimport dan mengeksport fail Excel?

Dengan perkembangan pesat Internet, pemprosesan data menjadi semakin penting, terutamanya dalam pengurusan data perusahaan. Fail Excel telah menjadi salah satu alat penting untuk pejabat korporat kerana ia boleh menyimpan, mengedit, mengira dan menganalisis data dengan mudah. Laravel ialah rangka kerja PHP yang digunakan secara meluas, dan Laravel Excel ialah pakej sambungan operasi fail Excel yang dibangunkan untuk Laravel, yang boleh mengimport dan mengeksport fail Excel dengan mudah.

Artikel ini akan memperkenalkan anda kepada penggunaan Laravel Excel secara terperinci. Dalam artikel ini, kita akan belajar cara memasang Laravel Excel dan mengimport serta mengeksport fail Excel.

1. Pasang Laravel Excel

Pasang Laravel Excel melalui Composer dalam terminal

composer require maatwebsite/excel

Jika anda menggunakan versi Laravel kurang daripada 5.5, anda perlu mengkonfigurasi/app.php Dua pembekal perkhidmatan berikut dikonfigurasikan dalam fail:

MaatwebsiteExcelExcelServiceProvider::class,
'Excel' => MaatwebsiteExcelFacadesExcel::class,

Jika anda menggunakan versi Laravel yang lebih besar daripada atau sama dengan 5.5, anda tidak perlu menambah pembekal perkhidmatan secara manual, pembekal perkhidmatan ini akan ditambah secara automatik pada konfigurasi.

Terbitkan melalui arahan Artisan di terminal:

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

Ini akan menjana fail konfigurasi dan fail templat berikut secara automatik:

config/excel.php
resources/views/vendor/excel

2. Konfigurasikan Laravel Excel

Fail konfigurasi excel.php mengandungi semua pilihan konfigurasi untuk Laravel Excel. Pilihan ini boleh ditakrifkan terus dalam fail .env atau dikonfigurasikan dalam fail config/excel.php. Di bawah ialah penerangan terperinci tentang semua pilihan yang mungkin.

'default_driver' => 'local',

Pilihan "default_driver" menentukan pemacu lalai untuk digunakan Terdapat dua pilihan di sini: local, ftp.

'cache' => [
    'enabled' => true,
    'driver' => 'laravel',
],

Pilihan "cache" menentukan pilihan caching boleh meningkatkan kelajuan, terutamanya apabila memproses sejumlah besar data. Apabila caching didayakan, tetapkan "cache_driver" kepada "laravel" atau "memcached".

'temp_path' => sys_get_temp_dir(),

Option temp_path menentukan laluan sistem fail untuk digunakan untuk menyimpan fail sementara.

'csv' => [
    'delimiter' => ',',
    'enclosure' => '"',
    'escape_character' => '\',
    'input_encoding' => 'UTF-8',
    'output_encoding' => 'UTF-8',
    'use_bom' => false,
],

Pilihan "csv" membenarkan mengkonfigurasi pilihan import dan eksport CSV, terutamanya termasuk pilihan berikut:

pembatas: pembatas, seperti: koma, koma bertitik, Tab, dsb.

kepungan: Simbol kepungan lajur.

escape_character: watak melarikan diri.

pengekodan_input: pengekodan input.

pengekodan_keluaran: pengekodan output.

use_bom: Sama ada hendak menggunakan perintah bait Bom.

'exports' => [
    'force_resave' => false,
    'ignore_empty' => false,
    'pre_calculate_formulas' => false,
    'maximum_recursion' => 50,
],

Pilihan "eksport" membenarkan mengkonfigurasi pilihan eksport, yang terutamanya termasuk pilihan berikut:

force_resave: sama ada untuk memaksa menyimpan.

ignore_empty: Sama ada hendak mengabaikan sel kosong.

formula_pra_kira: Sama ada mahu membuat prakira formula.

maximum_recursion: Bilangan maksimum tahap rekursi.

3. Eksport fail Excel

Laravel Excel menyediakan sokongan yang baik untuk mengeksport fail Excel. Seterusnya kami akan menunjukkan cara menggunakan Laravel Excel untuk eksport data.

Mula-mula, buka fail pengawal, buat fail Excel baharu dan eksport data:

<?php

namespace AppHttpControllers;

use MaatwebsiteExcelFacadesExcel;
use AppExportsUsersExport;

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

Dalam kaedah pengawal di atas, kami mencipta fail Excel menggunakan kaedah Excel::download() . Kaedah ini menerima dua parameter:

  • Pengguna parameter pertama ialah data yang dieksport. Kami melaksanakan eksport data dengan mencipta kelas tambahan UsersExport dengan kaedah toExcel().
  • Parameter kedua ialah nama fail, ia diperlukan.

Kandungan fail UsersExport adalah seperti berikut:

<?php

namespace AppExports;

use MaatwebsiteExcelConcernsFromCollection;
use AppUser;

class UsersExport implements FromCollection
{
    public function collection()
    {
        return User::select('id', 'name', 'email')->get();
    }
}

Kelas ini perlu melaksanakan antara muka MaatwebsiteExcelConcernsFromCollection. Kita dapat melihat bahawa FromCollection mengembalikan kelas koleksi, di mana kaedah get() akan mengembalikan semua pengguna yang disimpan dalam kelas.

Dengan cara ini, kami telah menyelesaikan operasi eksport Laravel Excel.

4. Import fail Excel

Laravel Excel juga menyediakan sokongan yang sangat baik untuk operasi import fail Excel. Seterusnya kami akan menunjukkan cara menggunakan Laravel Excel untuk mengimport data daripada fail Excel.

Pertama, buka fail pengawal dan import data dalam fail Excel ke dalam pangkalan data:

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;
use AppImportsUsersImport;

class ImportController extends Controller
{
    public function import(Request $request)
    {
        $file = $request->file('file');
        Excel::import(new UsersImport, $file);
        return redirect('/')->with('success', 'Excel 数据已成功导入!');
    }
}

Dalam kaedah pengawal di atas, kami menggunakan kaedah Excel::import() untuk mengimport Fail Excel. Kaedah ini menerima dua parameter:

  • Parameter pertama ialah UsersImport, iaitu kelas untuk mengimport fail Excel ke dalam pangkalan data.
  • Parameter kedua ialah fail Excel yang akan diimport, yang mengandungi data yang akan diimport.

Sekarang, mari kita lihat kelas UsersImport:

<?php

namespace AppImports;

use MaatwebsiteExcelConcernsToModel;
use AppUser;

class UsersImport implements ToModel
{
    public function model(array $row)
    {
        return new User([
            'name' => $row[0],
            'email' => $row[1],
            'password' => bcrypt($row[2])
        ]);
    }
}

Seperti yang anda lihat, kelas ini perlu melaksanakan antara muka MaatwebsiteExcelConcernsToModel, yang mentakrifkan kaedah model(). Kaedah ini akan digunakan untuk menentukan atribut pengguna baharu.

Dalam kaedah model(), kami menggunakan maklumat baris data tatasusunan untuk menyimpan atribut pengguna. Di sini kita menganggap bahawa baris pertama dalam fail Excel ialah nama pengguna, baris kedua ialah alamat e-mel, dan baris ketiga ialah kata laluan.

Ini adalah cara kami mengimport dan mengeksport fail Excel menggunakan Laravel Excel. Saya percaya anda telah mempelajari tentang penggunaan asas dan beberapa ciri lanjutan Laravel Excel. Semoga artikel ini berguna untuk pembelajaran Laravel anda.

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk mengimport dan mengeksport fail Excel menggunakan Laravel 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