Avec le développement rapide d'Internet, Excel est devenu l'un des outils importants du travail de bureau quotidien des entreprises et des particuliers. Par conséquent, la capacité d’Excel à importer et exporter est devenue un élément nécessaire dans de nombreuses applications. Comment utiliser ThinkPHP6 pour implémenter l'importation et l'exportation Excel ? Ci-dessous, cet article vous le présentera en détail.
1. Vérification de l'environnement système ThinkPHP6
Pour utiliser ThinkPHP6 pour implémenter l'importation et l'exportation Excel, vous devez d'abord répondre aux exigences de l'environnement système. Dans ThinkPHP6, vous pouvez utiliser composer pour installer la bibliothèque phpoffice/phpspreadsheet afin d'implémenter les fonctions de traitement Excel. Exécutez la commande suivante dans la ligne de commande pour installer :
composer require phpoffice/phpspreadsheet
Après l'installation, introduisez les bibliothèques de classes PhpOfficePhpSpreadsheetSpreadsheet et PhpOfficePhpSpreadsheetWriterXlsx dans la couche contrôleur. Ces bibliothèques de classes seront utilisées dans notre code derrière.
2. Exportation Excel
En utilisant ThinkPHP6 pour implémenter l'exportation Excel, vous devez d'abord importer les données dans Excel. Nous pouvons écrire le code correspondant dans la couche contrôleur selon les besoins. Par exemple, lors de l'exportation des informations sur les étudiants, vous pouvez obtenir des informations pertinentes en interrogeant la base de données.
use appcommonmodelStudent; public function export() { $students = Student::all(); }
L'en-tête du tableau Excel est une partie très importante. Afin de rendre clair l'en-tête du tableau Excel, nous pouvons écrire du code pour générer les informations d'en-tête du tableau. Dans le code ci-dessous, nous utilisons une boucle pour y parvenir.
$spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setTitle('学生信息表'); $sheet->setCellValue('A1', '序号'); $sheet->setCellValue('B1', '学号'); $sheet->setCellValue('C1', '姓名'); $sheet->setCellValue('D1', '性别'); $sheet->setCellValue('E1', '日期');
Ensuite, écrivez les données obtenues dans un tableau Excel. Parcourez les données et écrivez tour à tour les informations de chaque élève dans le tableau.
foreach ($students as $key => $item) { $num = $key + 2; $sheet->setCellValue('A' . $num, $num - 1); $sheet->setCellValue('B' . $num, $item->number); $sheet->setCellValue('C' . $num, $item->name); $sheet->setCellValue('D' . $num, $item->sex); $sheet->setCellValue('E' . $num, $item->date); }
Enfin, affichez et enregistrez le tableau Excel généré en local. Dans le code ci-dessous, nous utilisons Writer pour enregistrer le tableau Excel au format .xlsx et le sortir dans le navigateur.
$writer = new Xlsx($spreadsheet); $filename = "学生信息表.xlsx"; header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename=' . $filename); header('Cache-Control: max-age=0'); $writer->save('php://output'); exit();
3. Importation Excel
En plus d'exporter Excel, ThinkPHP6 peut également implémenter la fonction d'importation d'Excel. Ensuite, nous vous présenterons comment implémenter l'importation Excel dans ThinkPHP6.
Avant d'importer Excel, nous devons d'abord télécharger le fichier Excel. Ici, nous utilisons la bibliothèque de classes de téléchargement de fichiers fournie avec ThinkPHP6. Une fois le téléchargement réussi, utilisez la méthode de la bibliothèque de classes PhpOfficePhpSpreadsheetIOFactory pour lire les données dans le fichier Excel téléchargé.
use thinkacadeFilesystem; $uploadFile = request()->file('file'); $saveName = Filesystem::disk('public')->putFile('excel', $uploadFile); $filePath = Filesystem::disk('public')->path($saveName); $spreadsheet = PhpOfficePhpSpreadsheetIOFactory::load($filePath); $sheet = $spreadsheet->getActiveSheet(); $highestRow = $sheet->getHighestRow(); $data = [];
Après avoir obtenu les données du tableau Excel, nous devons parcourir les données et utiliser un tableau pour enregistrer chaque ligne de données dans le tableau Excel.
for($i = 2; $i <= $highestRow; $i++){ $item['number'] = $sheet->getCellByColumnAndRow(1, $i)->getValue(); $item['name'] = $sheet->getCellByColumnAndRow(2, $i)->getValue(); $item['sex'] = $sheet->getCellByColumnAndRow(3, $i)->getValue(); $item['date'] = date('Y-m-d H:i:s',$sheet->getCellByColumnAndRow(4, $i)->getValue() - 25569)*86400; $data[] = $item; }
Enfin, nous importons les données du tableau Excel dans la base de données. Ici, nous utilisons l'opération ORM fournie avec ThinkPHP6 pour enregistrer les données dans la table de la base de données.
use appcommonmodelStudent; Db::startTrans(); try { Student::insertAll($data); Db::commit(); } catch (Exception $e) { Db::rollback(); return json(['code' => '500', 'msg' => '操作失败']); } return json(['code' => '200', 'msg' => '操作成功']);
Résumé
Cet article présente en détail comment utiliser ThinkPHP6 pour implémenter les fonctions d'importation et d'exportation d'Excel. En utilisant la bibliothèque de classes PhpOfficePhpSpreadsheet, nous pouvons facilement effectuer des opérations liées à Excel. Les fonctions d'importation et d'exportation d'Excel sont largement utilisées dans les systèmes de gestion d'entreprise. La compréhension et la maîtrise des compétences associées seront d'une grande aide pour les développeurs.
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!