Maison > Article > développement back-end > Comment lire des fichiers Excel avec PHP et réponses aux questions courantes
Comment lire des fichiers Excel avec PHP et FAQ
Excel est un format de fichier de feuille de calcul très courant, et de nombreuses entreprises et données sont stockées dans des fichiers Excel. Pendant le processus de développement, si vous devez importer les données du fichier Excel dans le système, vous devez utiliser PHP pour lire le fichier Excel. Cet article explique comment lire des fichiers Excel avec PHP et répond aux questions courantes.
1. Comment lire des fichiers Excel avec PHP
1. Utilisez la bibliothèque de classes PHPExcel
PHPExcel est une bibliothèque de classes PHP qui peut facilement lire les données dans les fichiers Excel. Vous pouvez l'installer à l'aide de la commande composer en ajoutant le package de composants PHPExcel dans le fichier composer.json.
Une fois l'installation terminée, introduisez la bibliothèque de classes PHPExcel dans le code, utilisez la méthode PHPExcel_IOFactory::load() pour ouvrir le fichier Excel et utilisez l'instruction de boucle de PHP pour parcourir et lire les données.
Ce qui suit est un exemple de code pour lire un fichier Excel :
require_once '/path/to/PHPExcel.php';
// Le chemin ici est le chemin absolu du fichier Excel
$reader = PHPExcel_IOFactory :: load('/ path/to/example.xlsx');
// Récupère toutes les feuilles de calcul dans le fichier Excel
$sheets = $reader->getAllSheets();
$data = array();
// Boucle pour lire chaque donnée dans chaque feuille de calcul
foreach ($sheets as $sheet) {
// 获取当前工作表的数据行数和列数 $rowCount = $sheet->getHighestRow(); // 数据行数 $columnCount = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn()); // 数据列数 // 循环获取每行数据 for ($i = 1; $i <= $rowCount; $i++) { // 循环获取每列数据 $row = array(); for ($j = 0; $j < $columnCount; $j++) { // 通过坐标获取单元格数据 $cellValue = $sheet->getCellByColumnAndRow($j, $i)->getValue(); // 将数据存入数组 $row[] = $cellValue; } // 将行数据存入数组 $data[] = $row; }
}
var_dump($data);
2 Utilisez la bibliothèque de classes PHPOffice/PhpSpreadsheet
PhpSpreadsheet est une bibliothèque de classes alternative pour. PHPExcel, qui offre de meilleures performances et des fonctions plus complètes. Il peut être installé via la commande composer.
Ce qui suit est un exemple de code pour lire un fichier Excel à l'aide de PhpSpreadsheet :
require_once '/path/to/vendor/autoload.php';
use PhpOfficePhpSpreadsheetIOFactory;
// Le chemin ici est le chemin absolu du Fichier Excel
$ reader = IOFactory::createReaderForFile('/path/to/example.xlsx');
// Ouvrez le fichier Excel et lisez toutes les données en mémoire
$spreadsheet = $reader->load('/ path/to/ example.xlsx');
$data = array();
//Itérer sur toutes les feuilles de calcul et toutes les lignes
foreach ($spreadsheet->getActiveSheet()->getRowIterator() as $row) {
$rowData = array(); // 迭代所有单元格 foreach ($row->getCellIterator() as $cell) { // 获取单元格数据 $cellValue = $cell->getValue(); // 将数据存入数组 $rowData[] = $cellValue; } // 将行数据存入数组 $data[] = $rowData;
}
var_dump($data);
2. Foire aux questions
1. Comment gérer les espaces dans Excel ?
Des espaces inutiles apparaissent souvent dans les tableaux Excel et doivent être traités lors de la lecture des données. Vous pouvez utiliser la fonction trim() pour supprimer les espaces aux deux extrémités d'une chaîne.
L'exemple de code suivant montre comment supprimer les espaces lors de la lecture de données Excel :
require_once '/path/to/PHPExcel.php';
$reader = PHPExcel_IOFactory::load('/path/to/example.xlsx ' );
$data = array();
foreach ($reader->getActiveSheet()->getRowIterator() as $row) {
$rowData = array(); foreach ($row->getCellIterator() as $cell) { $cellValue = $cell->getValue(); $cellValue = trim($cellValue); // 去除空格 $rowData[] = $cellValue; } $data[] = $rowData;
}
var_dump($data);
2. avec des dates dans Excel ?
La valeur de la date dans Excel est en fait un nombre et doit être formatée après avoir lu les données. Vous pouvez utiliser la fonction date() de PHP pour convertir des nombres au format date.
Voici un exemple de code :
require_once '/path/to/PHPExcel.php';
$reader = PHPExcel_IOFactory::load('/path/to/example.xlsx');
$data = array () ;
foreach ($reader->getActiveSheet()->getRowIterator() as $row) {
$rowData = array(); foreach ($row->getCellIterator() as $cell) { // 获取单元格数据 $cellValue = $cell->getValue(); // 如果当前单元格是日期值,则进行格式化 if (PHPExcel_Shared_Date::isDateTime($cell)) { $cellValue = PHPExcel_Shared_Date::ExcelToPHP( $cellValue ); // 将数字转换为时间戳 $dateValue = date("Y-m-d H:i:s", $cellValue); // 格式化日期 $rowData[] = $dateValue; } else { $rowData[] = $cellValue; } } $data[] = $rowData;
}
var_dump($data);
3. Comment gérer les formats de nombres dans Excel ?
Les valeurs numériques dans Excel peuvent avoir des milliers de séparateurs, de décimales, etc., qui doivent être formatées après la lecture des données. Vous pouvez utiliser la fonction number_format() de PHP pour formater les nombres.
Voici un exemple de code :
require_once '/path/to/PHPExcel.php';
$reader = PHPExcel_IOFactory::load('/path/to/example.xlsx');
$data = array () ;
foreach ($reader->getActiveSheet()->getRowIterator() as $row) {
$rowData = array(); foreach ($row->getCellIterator() as $cell) { // 获取单元格数据 $cellValue = $cell->getValue(); // 如果当前单元格是数字值,则进行格式化 if (is_numeric($cellValue)) { $cellFormat = $cell->getStyle()->getNumberFormat()->getFormatCode(); // 获取单元格格式 $cellValue = number_format($cellValue, PHPExcel_Style_NumberFormat::toFormattedString($cellValue, $cellFormat), '.', ''); // 进行格式化 $rowData[] = $cellValue; } else { $rowData[] = $cellValue; } } $data[] = $rowData;
}
var_dump($data);
Ce qui précède explique comment lire des fichiers Excel avec PHP et réponses au contenu des questions fréquemment posées. Vous pouvez facilement lire les données d'un fichier Excel en utilisant la bibliothèque de classes PHPExcel ou PhpSpreadsheet. En même temps, vous devez faire attention à la gestion des espaces, des dates et des formats de nombres dans Excel.
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!