Comment utiliser le framework Hyperf pour importer et exporter Excel
Résumé : Cet article présentera comment implémenter les fonctions d'importation et d'exportation de fichiers Excel dans le framework Hyperf et donnera des exemples de code spécifiques.
Mots clés : Framework Hyperf, import Excel, export Excel, exemples de code
Importation
Tout d'abord, nous devons nous assurer que la bibliothèque phpoffice/phpspreadsheet
est installée dans le projet. Il peut être installé en exécutant la commande suivante dans le 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
dans le répertoire app/Controller
et ajoutez le code suivant :Ensuite, dans config/ routes Ajoutez la route suivante au fichier .php
:
rrreee
import.blade dans les <code>ressources/vues code>.php
, ajoutez le code du formulaire suivant :
import code> du contrôleur, nous utilisons la bibliothèque <code>PhpSpreadsheet
pour charger le fichier Excel téléchargé et le convertir au format tableau. Ensuite, nous pouvons traiter les données en fonction des besoins réels.
PhpSpreadsheet
. storage
et accédez à /excel/download via le navigateur pour télécharger le fichier. 🎜🎜Résumé🎜Cet article présente en détail comment utiliser le framework Hyperf pour implémenter les fonctions d'importation et d'exportation de fichiers Excel, et donne des exemples de code spécifiques. Grâce à une configuration et un codage simples, nous pouvons rapidement implémenter l'importation et l'exportation Excel dans le framework Hyperf pour améliorer l'efficacité du développement. 🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!