Maison > développement back-end > tutoriel php > Comment générer et lire des fichiers Excel en php

Comment générer et lire des fichiers Excel en php

墨辰丷
Libérer: 2023-03-28 19:56:01
original
1807 Les gens l'ont consulté

La génération et la lecture de rapports sont souvent utilisées dans le contexte de gestion du site Web. CSV et Excel sont des formats de rapport couramment utilisés. Cet article présente la génération et la lecture de fichiers Excel en PHP. Les amis qui en ont besoin peuvent venir apprendre. à ce sujet.

Les tableaux sont souvent générés sur les sites Web. CSV et Excel sont tous deux des formats de rapport couramment utilisés. Si vous avez des questions, je publierai ici quelques exemples CSV l'un après l'autre. utiliser PHP. Générer et lire des fichiers Excel.

Pour exécuter la fonction suivante, vous devez d'abord introduire une bibliothèque de classes : PHPExcel. PHPExcel est une puissante bibliothèque de classes PHP utilisée pour lire et écrire différents formats de fichiers, tels qu'Excel 2007, le format PDF, HTML. format, etc. Cette bibliothèque de classes est basée sur OpenXML et PHP de Microsoft. Elle fournit un support puissant pour Excel, tel que la configuration des classeurs, des styles de police, des images, des bordures, etc. Voyons comment l'écrire.

Voyons d'abord comment générer un fichier Excel :

La fonction de la fonction arrayToExcel dans le code ci-dessous est de générer un fichier Excel à partir d'un fichier bidimensionnel tableau de données et enregistré sur le serveur.

require_once 'Classes/PHPExcel/Reader/Excel2007.php';
require_once 'Classes/PHPExcel/Reader/Excel5.php';
include 'Classes/PHPExcel/IOFactory.php';
function arrayToExcel($data){
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setTitle('firstsheet');
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial');
$objPHPExcel->getDefaultStyle()->getFont()->setSize(10);
//add data
$i = 2;
foreach ($data as $line){
$objPHPExcel->getActiveSheet()->setCellValue('A'.$i, $line['From']);
$objPHPExcel->getActiveSheet()->getCell('A'.$i)->setDataType('n');
$objPHPExcel->getActiveSheet()->setCellValue('B'.$i, $line['To']);
$objPHPExcel->getActiveSheet()->getCell('B'.$i)->setDataType('n');
$i++;
}
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$file = 'excel.xls';
$objWriter->save($file);
}
Copier après la connexion

Si vous ne souhaitez pas l'enregistrer sur le serveur et souhaitez le télécharger directement sur le client après génération, vous pouvez ajouter ce qui suit lors de la sortie du fichier Le code sans utiliser $objWriter->save($file);

est le suivant :

header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('Content-Disposition:attachment;filename="excel.xls"');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
Copier après la connexion

Regardons un exemple de lecture du contenu d'un fichier Excel :

La fonction excelToArray dans le code ci-dessous consiste à réorganiser le contenu d'un fichier Excel dans un tableau .

Le code est le suivant :

require_once 'Classes/PHPExcel.php';
require_once 'Classes/PHPExcel/IOFactory.php';
function excelToArray($file){
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($file);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);
$excelData = array();
for ($row = 2; $row <= $highestRow; ++$row) {
for ($col = 0; $col <= $highestColumnIndex; ++$col) { $excelData[$row][] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
}
}
return $excelData;
}
Copier après la connexion

Approche simplifiée

Le code est le suivant :

<?php
/**
 *
 * @copyright 2007-2012 Xiaoqiang.
 * @author Xiaoqiang.Wu <jamblues@gmail.com>
 * @version 1.01
 */
error_reporting(E_ALL);
date_default_timezone_set(&#39;Asia/ShangHai&#39;);
 
/** PHPExcel_IOFactory */
require_once &#39;../Classes/PHPExcel/IOFactory.php&#39;; 
// Check prerequisites
if (!file_exists("31excel5.xls")) {
  exit("not found 31excel5.xls.n");
}
$reader = PHPExcel_IOFactory::createReader(&#39;Excel5&#39;); //设置以Excel5格式(Excel97-2003工作簿)
$PHPExcel = $reader->load("31excel5.xls"); // 载入excel文件
$sheet = $PHPExcel->getSheet(0); // 读取第一??工作表
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数
 
/** 循环读取每个单元格的数据 */
for ($row = 1; $row <= $highestRow; $row++){//行数是以第1行开始
  for ($column = &#39;A&#39;; $column <= $highestColumm; $column++) {//列数是以A列开始
    $dataset[] = $sheet->getCell($column.$row)->getValue();
    echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."<br />";
  }
} 
?>
Copier après la connexion

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j’espère qu’il pourra aider l’apprentissage de chacun.

Recommandations associées :

phpRéaliser la fonction de paiement en face-à-face Alipay (scan QR code paiement)

Nouveau projet FTP de PHPStrom et explication graphique détaillée des opérations en ligne

phpMise en œuvre de la fonction de paiement natif WeChat (paiement par scan QR code)

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal