Heim > Backend-Entwicklung > PHP-Tutorial > So generieren und lesen Sie Excel-Dateien in PHP

So generieren und lesen Sie Excel-Dateien in PHP

墨辰丷
Freigeben: 2023-03-28 19:56:01
Original
1807 Leute haben es durchsucht

Das Generieren und Lesen von Berichten wird häufig im Verwaltungshintergrund der Website verwendet. In diesem Artikel wird das Generieren und Lesen von Excel-Dateien in PHP vorgestellt 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. Excel-Dateien generieren und lesen.

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);
}
Nach dem Login kopieren

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');
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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 />";
  }
} 
?>
Nach dem Login kopieren

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass es zum Lernen aller nützlich sein kann.

Verwandte Empfehlungen:

phpRealisieren Sie die Face-to-Face-Zahlungsfunktion von Alipay (QR-Code-Zahlung scannen)

Das neue FTP-Projekt von PHPStrom und detaillierte grafische Erklärung des Online-Betriebs

phpImplementierung der nativen WeChat-Zahlungsfunktion (QR-Code-Zahlung scannen)

Das obige ist der detaillierte Inhalt vonSo generieren und lesen Sie Excel-Dateien in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage