Es gibt drei häufig verwendete Methoden zum Lesen von Excel mit PHP, jede mit ihren eigenen Vor- und Nachteilen. Ich persönlich empfehle die dritte Methode, da sie plattformübergreifend einsetzbar ist.
1. Im .csv-Format lesen
Konvertieren Sie .xls in das .csv-Textformat und analysieren Sie die Datei dann mit PHP. Dies unterscheidet sich nicht von der Textanalyse mit PHP.
Vorteile: plattformübergreifend, relativ hohe Effizienz und kann lesen und schreiben.
Nachteile: Sie können nur CSV-Dateien direkt verwenden. Wenn Sie häufig XLS-Binärdateien akzeptieren, müssen Sie diese manuell konvertieren und können nicht automatisiert werden. Für eine Datei gibt es nur ein BLATT.
PHP verfügt über eine eigene Analysis.csv-Funktion: fgetcsv
array fgetcsv ( int $handle [, int $length [, string $delimiter [, string $enclosure]]] )
handle Ein gültiger Dateizeiger, der von fopen(), popen() oder fsockopen() generiert wird.
Länge (optional) muss größer sein als die längste Zeile in der CVS-Datei. Dieser Parameter ist in PHP 5 optional. Wenn dieser Parameter weggelassen wird (in PHP 5.0.4 und späteren Versionen auf 0 gesetzt), gibt es keine Begrenzung für die Länge, kann aber die Ausführungseffizienz beeinträchtigen.
delimiter (optional) legt das Feldtrennzeichen fest (nur ein Zeichen erlaubt), der Standardwert ist Komma.
„enclosure“ (optional) legt das Feldumrandungszeichen fest (nur ein Zeichen erlaubt), der Standardwert sind doppelte Anführungszeichen. Dieser Parameter wurde in PHP 4.3.0 hinzugefügt. Ähnlich wie fgets(), außer dass fgetcsv() die gelesene Zeile analysiert, die Felder im CSV-Format findet und ein Array zurückgibt, das diese Felder enthält.
fgetcsv() gibt im Fehlerfall FALSE zurück, auch wenn das Ende der Datei erreicht ist.
Hinweis: Leere Zeilen in der CSV-Datei werden als Array mit einem einzelnen Nullfeld zurückgegeben und nicht als Fehler behandelt.
Natürlich können Sie den String auch manuell selbst analysieren.
Beispiel:
<?php $row = 1; echo "<pre class="brush:php;toolbar:false"><table border=1>"; $handle = fopen("three.csv","r"); while ($data = fgetcsv($handle, 1000, ",")) { $num = count($data); $row++; echo "<tr align=center>"; for ($c=0; $c < $num; $c++) { echo "<td>".$data[$c]."</td>"; } echo "</tr>"; } echo "</table>"; fclose($handle); ?>
Sie können auch die Funktion fputcsv verwenden, um die Zeilen in CSV zu formatieren und den Dateizeiger zu schreiben.
2. ODBC-verknüpfte Datenquelle
Vorteile: Unterstützt mehrere Formate, CVS, XLS usw. Unterstützt Lesen und Schreiben, verwendet die Standard-SQL-Sprache und ist nahezu identisch mit SQLSERVER- und MYSQL-Datenbanken.
Nachteil: Unterstützt nur Windows Server
3. Benutzerdefinierte PHP-Klasse (die Datei ist etwas groß, daher füge ich sie in das nächste Kapitel ein)
Vorteile: Plattformübergreifend. Einige Klassen unterstützen Schreiboperationen. Unterstützt .xls-Binärdateien
test.php in
Ändern Sie $data->setOutputEncoding('CP1251');
ist $data->setOutputEncoding('CP936');
Vereinfachtes Chinesisch ist cp936, traditionelles Chinesisch kann in CP950 geändert werden, Japanisch ist CP932 usw.
Ändern Sie $data->read(' three.xls') in Ihren eigenen Excel-Dateinamen.
Das Obige stellt die Methode zum Lesen von Excel mit PHP vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.