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:
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:
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!