Heim  >  Artikel  >  Backend-Entwicklung  >  PHP generiert und liest Excel-Dateien_php-Beispiel

PHP generiert und liest Excel-Dateien_php-Beispiel

墨辰丷
墨辰丷Original
2018-05-31 17:29:141528Durchsuche

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(&#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 />";
  }
} 
?>

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn