Maison  >  Article  >  cadre php  >  Comment utiliser ThinkPHP6 pour implémenter l'importation et l'exportation Excel

Comment utiliser ThinkPHP6 pour implémenter l'importation et l'exportation Excel

WBOY
WBOYoriginal
2023-06-21 18:01:414741parcourir

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

  1. Exporter des données 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();
}
  1. Définir l'en-tête du tableau Excel

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', '日期');
  1. Écrivez les données dans un tableau Excel

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);
}
  1. Sortez et enregistrez le tableau Excel en local

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.

  1. Télécharger le fichier Excel et lire les données

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 thinkacadeFilesystem;

$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 = [];
  1. Parcourez le tableau Excel et obtenez les données

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;
}
  1. Importez le tableau Excel dans la base de données

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn