Cara menggunakan rangka kerja Hyperf untuk mengimport dan mengeksport Excel
Abstrak: Artikel ini akan memperkenalkan cara melaksanakan fungsi import dan eksport fail Excel dalam rangka kerja Hyperf, dan memberikan contoh kod khusus.
Kata kunci: Rangka kerja Hyperf, import Excel, eksport Excel, contoh kod
Import
Pertama, kita perlu memastikan bahawa pustaka phpoffice/phpspreadsheet
dipasang dalam projek. Ia boleh dipasang dengan melaksanakan arahan berikut dalam terminal: phpoffice/phpspreadsheet
这个库。可以通过在终端中执行以下命令进行安装:
composer require phpoffice/phpspreadsheet
app/Controller
目录下创建一个 ExcelController.php
文件,添加以下代码:<?php declare(strict_types=1); namespace AppController; use PhpOfficePhpSpreadsheetIOFactory; class ExcelController { public function import() { $uploadedFile = $this->request->file('excel_file'); $spreadsheet = IOFactory::load($uploadedFile->getPathname()); $worksheet = $spreadsheet->getActiveSheet(); $data = $worksheet->toArray(); // 处理导入逻辑 } }
然后,在 config/routes.php
文件中添加以下路由:
use AppControllerExcelController; Router::post('/excel/import', [ExcelController::class, 'import']);
resources/views
目录中创建一个 import.blade.php
文件,添加以下表单代码:<form action="/excel/import" method="post" enctype="multipart/form-data"> <input type="file" name="excel_file"> <button type="submit">导入</button> </form>
import
方法中,我们使用 PhpSpreadsheet
库加载上传的 Excel 文件,并将其转换为数组格式。然后,我们可以根据实际需求对数据进行处理。导出
导出Excel文件主要涉及两个步骤:创建Excel文件和下载Excel文件。
PhpSpreadsheet
库创建一个 Excel 文件。use PhpOfficePhpSpreadsheetSpreadsheet; use PhpOfficePhpSpreadsheetWriterXlsx; public function export() { $spreadsheet = new Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); // 设置表头 $worksheet->setCellValue('A1', '姓名') ->setCellValue('B1', '年龄') ->setCellValue('C1', '性别'); // 设置数据行 $data = [ ['张三', '20', '男'], ['李四', '30', '女'], ]; $row = 2; foreach ($data as $item) { $column = 'A'; foreach ($item as $value) { $worksheet->setCellValue($column . $row, $value); $column++; } $row++; } // 保存文件 $writer = new Xlsx($spreadsheet); $writer->save('storage/export.xlsx'); }
use PsrHttpMessageStreamInterface; use SymfonyComponentConsoleOutputStreamOutput; public function download() { $file = 'storage/export.xlsx'; return $this->response->withHeader('Content-Disposition', 'attachment;filename=' . $file) ->withHeader('Pragma', 'public') ->withHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') ->withHeader('Content-Length', filesize($file)) ->withBody(new StreamOutput(fopen($file, 'r'))); }
在路由文件中添加以下路由:
Router::get('/excel/download', [ExcelController::class, 'download']);
将导出的文件存储在 storage
目录下,并通过浏览器访问 /excel/download
rrreee
ExcelController.php
dalam direktori app/Controller
dan tambahkan kod berikut:Kemudian, dalam config/ route Tambah laluan berikut pada fail .php
:
rrreee
import.blade dalam <code>sumber/pandangan kod> fail php
, tambahkan kod borang berikut:
import code> kaedah pengawal , kami menggunakan pustaka <code>PhpSpreadsheet
untuk memuatkan fail Excel yang dimuat naik dan menukarnya kepada format tatasusunan. Kemudian, kita boleh memproses data mengikut keperluan sebenar.
PhpSpreadsheet
. storan
dan akses /excel/download melalui penyemak imbas untuk memuat turun fail. 🎜🎜Ringkasan🎜Artikel ini memperkenalkan secara terperinci cara menggunakan rangka kerja Hyperf untuk melaksanakan fungsi import dan eksport fail Excel, dan memberikan contoh kod khusus. Melalui konfigurasi dan pengekodan yang mudah, kami boleh melaksanakan import dan eksport Excel dengan pantas dalam rangka kerja Hyperf untuk meningkatkan kecekapan pembangunan. 🎜
Atas ialah kandungan terperinci Cara menggunakan rangka kerja Hyperf untuk import dan eksport Excel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!