Maison  >  Article  >  cadre php  >  Comment importer et exporter Excel dans ThinkPHP6 ?

Comment importer et exporter Excel dans ThinkPHP6 ?

WBOY
WBOYoriginal
2023-06-12 11:01:483153parcourir

Avec la popularité croissante des applications Internet et la demande croissante d'interaction entre différents types de données et de transfert de données, la conversion, l'importation et l'exportation de formats de fichiers sont devenues l'un des besoins courants. Dans les applications Web, l'importation et l'exportation de fichiers Excel sont des méthodes d'échange de données courantes dans le travail quotidien. Cet article expliquera comment implémenter les fonctions d'importation et d'exportation Excel dans le framework ThinkPHP6.

1. Introduction au framework ThinkPHP6

ThinkPHP6 est un framework PHP léger orienté objet gratuit, open source, rapide et simple. Il présente les caractéristiques de hautes performances, de fonctions riches, de configuration flexible, d'une forte évolutivité, etc., et est devenu un framework populaire dans le domaine du développement d'applications PHP.

2. Exportation Excel

  1. Exemple de code
<?php
namespace appindexcontroller;

use PHPExcel;
use PHPExcel_IOFactory;

class ExcelExport
{
    public function export()
    {
        $objPHPExcel = new PHPExcel();

        // 设置当前活动sheet
        $objPHPExcel->setActiveSheetIndex(0);

        // 设置标题
        $objPHPExcel->getActiveSheet()->setTitle('学生成绩');

        // 设置表头
        $objPHPExcel->getActiveSheet()->setCellValue('A1', '学号');
        $objPHPExcel->getActiveSheet()->setCellValue('B1', '姓名');
        $objPHPExcel->getActiveSheet()->setCellValue('C1', '语文');
        $objPHPExcel->getActiveSheet()->setCellValue('D1', '数学');
        $objPHPExcel->getActiveSheet()->setCellValue('E1', '英语');
        $objPHPExcel->getActiveSheet()->setCellValue('F1', '总分');

        // 设置数据
        $data = [
            ['1001', '张三', '85', '90', '88', '263'],
            ['1002', '李四', '90', '88', '90', '268'],
            ['1003', '王五', '92', '87', '91', '270']
        ];
        $row = 2;
        foreach ($data as $val) {
            $objPHPExcel->getActiveSheet()->setCellValue('A' . $row, $val[0]);
            $objPHPExcel->getActiveSheet()->setCellValue('B' . $row, $val[1]);
            $objPHPExcel->getActiveSheet()->setCellValue('C' . $row, $val[2]);
            $objPHPExcel->getActiveSheet()->setCellValue('D' . $row, $val[3]);
            $objPHPExcel->getActiveSheet()->setCellValue('E' . $row, $val[4]);
            $objPHPExcel->getActiveSheet()->setCellValue('F' . $row, $val[5]);
            $row++;
        }

        // 设置列宽
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
        $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(15);

        // 导出Excel
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="学生成绩.xlsx"');
        header('Cache-Control: max-age=0');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
        $objWriter->save('php://output');
        exit;
    }
}
  1. Instructions

L'exemple de code ci-dessus montre comment utiliser la bibliothèque PHPExcel pour implémenter l'exportation Excel. La bibliothèque PHPExcel est une bibliothèque open source permettant de lire et d'écrire des fichiers Excel en PHP. Elle est puissante et facile à utiliser.

Tout d'abord, nous avons créé une instance PHPExcel, puis défini la feuille active actuelle, ainsi que le titre et l'en-tête. Après cela, nous définissons les données et définissons les largeurs de colonnes. Enfin, nous utilisons la fonction header pour définir le type de contenu, le nom de fichier et le contrôle du cache pour l'exportation d'Excel, puis utilisons la méthode createWriter de la classe PHPExcel_IOFactory pour créer un écrivain au format Excel2007 et afficher le flux de données vers le navigateur.

3. Importation Excel

  1. Exemple de code
<?php
namespace appindexcontroller;

use PHPExcel;
use PHPExcel_IOFactory;

class ExcelImport
{
    public function import()
    {
        if (empty($_FILES['file']['tmp_name'])) {
            echo '请选择文件!';
            exit;
        }

        $reader = PHPExcel_IOFactory::createReader('Excel2007');
        $PHPExcel = $reader->load($_FILES['file']['tmp_name']);

        $sheet = $PHPExcel->getSheet(0); // 获得第1个工作表

        $highestRow = $sheet->getHighestRow(); // 取得总行数
        $highestColumn = $sheet->getHighestColumn(); // 取得总列数

        $data = [];
        for ($row = 2; $row <= $highestRow; $row++) {
            $rowData = [];
            for ($col = 'A'; $col <= $highestColumn; $col++) {
                $rowData[$col] = (string)$sheet->getCell($col . $row)->getValue();
            }
            $data[] = $rowData;
        }

        var_dump($data);
    }
}
  1. Instructions

L'exemple de code ci-dessus montre comment utiliser la bibliothèque PHPExcel pour implémenter l'importation Excel. Tout d'abord, nous déterminons si le client a téléchargé le fichier et utilisons la méthode createReader de la classe PHPExcel_IOFactory pour créer un lecteur au format Excel2007. Ensuite, nous utilisons la méthode de chargement de $reader pour lire le fichier Excel en mémoire et obtenir la première feuille de calcul qu'il contient. Ensuite, nous parcourons le tableau Excel en passant par la valeur d'index de la ligne la plus élevée et de la colonne la plus élevée, stockons chaque ligne de données sous la forme d'un tableau associatif dans la variable $data et générons enfin la variable.

IV.Résumé

Grâce à l'introduction de cet article, nous avons appris à utiliser le framework ThinkPHP6 combiné à la bibliothèque PHPExcel pour implémenter les fonctions d'importation et d'exportation de fichiers Excel, ce qui offre commodité et support pour le développement de nos applications Web. Nous pouvons utiliser de manière flexible diverses méthodes et propriétés de la bibliothèque PHPExcel en fonction des besoins réels pour réaliser l'échange de formats de fichiers et mieux servir nos applications.

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