Maison > Article > développement back-end > Comment lire le contenu du tableau en utilisant PHPExcel
Comment lire le contenu du tableau en utilisant PHPExcel ? Sans plus tarder, l'article suivant vous donnera une introduction détaillée à la façon dont PHPExcel lit le contenu du tableau.
Introduisez d'abord la classe IOFactory.php
require_once '../PHPExcel/IOFactory.php'; $filePath = "test.xlsx"; // 测试文件
Chargez le fichier de test
$inputFileType = PHPExcel_IOFactory :: identifier( $filePath) Déterminer le type de fichier
$objReader = PHPExcel_IOFactory::createReader($inputFileType); Instancier le type d'objet
$objPHPExcel = $ objReader->load($filePath); Charger le fichier
Ce qui suit détermine principalement les types Excel2007 et Excel5, c'est-à-dire le format xlsx/xlsm/xltx/xltm et xls/xlt fichiers
try { $inputFileType = PHPExcel_IOFactory::identify($filePath); if ($inputFileType !== "Excel5" && $inputFileType !== "Excel2007" ) { unlink($filePath) && str_alert(-1,"请确保导入的文件格式正确!"); } $objReader = PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel = $objReader->load($filePath); } catch(Exception $e) { unlink($filePath) && str_alert(-1,'加载文件发生错误:”'.pathinfo($filePath,PATHINFO_BASENAME).'”: '.$e->getMessage()); }
$sheet = $objPHPExcel->getSheet(0); //或者 $sheet = $objPHPExcel->getActiveSheet();
$highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn();
Remarque : Parfois, vous trouverez des lignes qui il y a clairement du contenu dans votre tableau. Il n'y a que 5 lignes dans le décompte, mais le $highestRow obtenu contient 7, 8 lignes ou plus. Cela peut être dû au fait que vous avez accidentellement cliqué sur d'autres lignes lors de l'utilisation de votre formulaire. Bien que le contenu ne soit pas rempli. , getHighestRow peut également être utilisé. Identifiez le nombre de lignes ;
Si vous souhaitez obtenir le nombre de lignes avec du contenu, vous devez utiliser getHighestDataRow et getHighestDataColumn
Les commentaires du code source introduisent la chaîne Numéro de ligne le plus élevé qui contient des données. , c'est-à-dire le numéro de ligne le plus élevé de la chaîne contenant des données.
Les cellules du tableau de type xlsx sont obtenues grâce aux coordonnées de l'axe xy,
peut être obtenu via un
$sheet->getCell("A1")->getValue(); $sheet->getCell("B2")->getValue();
similaire Le contenu,
Si vous ne souhaitez pas parcourir les lettres, vous pouvez utiliser la méthode de l'index numérique
$sheet->getCellByColumnAndRow(0,1); $sheet->getCellByColumnAndRow(1,2);
Notez que le le premier paramètre dans les coordonnées commence à 0, 0 représente A, 1 représente B... , le deuxième paramètre commence à 1.
Ce qui suit consiste à parcourir le tableau pour obtenir tout le contenu des cellules :
$dataSet=array(); for ($column = "A"; $column <= $highestColumn; $column++) {//列数是以A列开始 for ($row = 4; $row <= $highestRow; $row++) { //行数是以第4行开始 $cell = $sheet->getCell($column . $row)->getValue(); if($cell instanceof PHPExcel_RichText) { //富文本转换字符串 $cell = $cell->__toString(); } $dataSet[$row][] = $cell; } }
Parmi eux, la chaîne de conversion de texte enrichi consiste à utiliser l'instance $cell de PHPExcel_RichText pour déterminer s'il s'agit de texte enrichi. Après avoir consulté les informations, j'ai découvert que si la chaîne de votre cellule contient plus de deux polices, elle sera automatiquement définie. sous forme de texte enrichi. À ce stade, vous avez besoin de la conversion __toString()
Lorsque nous avons parcouru la sortie de toutes les cellules, nous avons trouvé. que certaines des cellules fusionnées n'avaient du contenu que dans la coordonnée supérieure gauche et que les autres étaient nulles
Par exemple, A4 et A5 ont été fusionnées en une seule cellule, getCell(" A4") a un contenu normal, mais getCell("A5 ") est nul.
isMergeRangeValueCell peut être utilisé pour déterminer si une cellule spécifique se trouve dans le coin supérieur gauche
$sheet->getCell('A' . $row)->isMergeRangeValueCell()
quand $row Lorsqu'il vaut 4, il renvoie vrai et lorsqu'il vaut 5 , il renvoie false
Pour obtenir le contenu du format d'heure dans le tableau, vous avez besoin de PHPExcel_Shared_Date::ExcelToPHP() pour le convertir en une heure pouvant être reconnue par PHP Format
date('Y-m-d',PHPExcel_Shared_Date::ExcelToPHP($sometime);
Recommandations associées :
Exemple de phpexcel lisant le temps de table Excel Lire l'unité de temps de table Excel Grille
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!