Heim > Artikel > Backend-Entwicklung > PHP generiert und liest Excel-Dateien_php-Beispiel
Das Generieren und Lesen von Berichten wird häufig im Verwaltungshintergrund der Website verwendet. CSV und Excel sind beide häufig verwendete Berichtsformate. Dieser Artikel stellt die Generierung und das Lesen von Excel-Dateien in PHP vor Erfahren Sie mehr darüber.
Tabellen werden häufig auf Websites erstellt. CSV ist relativ einfach. Wenn Sie Fragen haben, werde ich nacheinander einige CSV-Beispiele veröffentlichen Verwenden Sie PHP zum Generieren und Lesen von Excel-Dateien.
Um die folgende Funktion auszuführen, müssen Sie zunächst eine Klassenbibliothek einführen: PHPExcel ist eine leistungsstarke PHP-Klassenbibliothek, die zum Lesen und Schreiben verschiedener Dateiformate wie Excel 2007, PDF-Format und HTML verwendet wird Format usw. Diese Klassenbibliothek basiert auf OpenXML und PHP von Microsoft. Sie bietet leistungsstarke Unterstützung für Excel, z. B. das Festlegen von Arbeitsmappen, Schriftstilen, Bildern, Rahmen usw. Schauen wir uns an, wie man Excel-Dateien liest.
Schauen wir uns zunächst an, wie man eine Excel-Datei generiert:
Die Funktion der Funktion arrayToExcel im folgenden Code besteht darin, aus einer zweidimensionalen Datei eine Excel-Datei zu generieren Array von Daten erstellt und auf dem Server gespeichert.
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); }
Wenn Sie es nicht auf dem Server speichern und nach der Generierung direkt auf den Client herunterladen möchten, können Sie das hinzufügen Folgen Sie dem Code bei der Ausgabe der Datei, anstatt $objWriter->save($file); zu verwenden.
Der Code lautet wie folgt:
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');
Weiter Schauen wir uns ein Beispiel für das Lesen des Inhalts einer Excel-Datei an:
Die Funktion excelToArray im folgenden Code dient dazu, den Inhalt einer Excel-Datei in einem Array neu anzuordnen .
Der Code lautet wie folgt:
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; }
Vereinfachter Ansatz
Der Code lautet wie folgt:
<?php /** * * @copyright 2007-2012 Xiaoqiang. * @author Xiaoqiang.Wu <jamblues@gmail.com> * @version 1.01 */ error_reporting(E_ALL); date_default_timezone_set('Asia/ShangHai'); /** PHPExcel_IOFactory */ require_once '../Classes/PHPExcel/IOFactory.php'; // Check prerequisites if (!file_exists("31excel5.xls")) { exit("not found 31excel5.xls.n"); } $reader = PHPExcel_IOFactory::createReader('Excel5'); //设置以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 = 'A'; $column <= $highestColumm; $column++) {//列数是以A列开始 $dataset[] = $sheet->getCell($column.$row)->getValue(); echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."<br />"; } } ?>
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass es zum Lernen aller nützlich sein kann.
Verwandte Empfehlungen:
PHP WeChat Development Synchronization Fans
php5.5.12 Nächstes Debugging SOAP-Fehlermeldung
HTMLPurifier in PHP zur Verhinderung von XSS-Angriffen
Das obige ist der detaillierte Inhalt vonPHP generiert und liest Excel-Dateien_php-Beispiel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!