Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erläuterung der Schritte zum Lesen und Schreiben von Excel-Dateien mit nativem PHP

Detaillierte Erläuterung der Schritte zum Lesen und Schreiben von Excel-Dateien mit nativem PHP

php中世界最好的语言
Freigeben: 2023-03-25 22:38:02
Original
2443 Leute haben es durchsucht

Dieses Mal werde ich Ihnen die Schritte zum Lesen und Schreiben von Excel-Dateien in nativem PHP ausführlich erläutern. Was sind die Vorsichtsmaßnahmen für die Implementierung von Excel-Dateien in nativem PHP? Schauen Sie mal rein.

Vor kurzem bin ich bei der Arbeit auf eine Anforderung gestoßen, die den Export von Daten in der Datenbank in eine Excel-Datei und das Herunterladen der Excel-Datei erfordert. Da ich das noch nie gemacht habe, habe ich im Internet nachgefragt, dass sie die PHPExcel-Klasse zum Betreiben von Excel-Dateien verwenden. Aber ich möchte es einfach herunterladen Verwenden Sie natives PHP und möchten Sie nicht so mühsam sein. Einige Internetnutzer haben auch über die Methode zum Generieren von Excel-Dateien mit nativem PHP gesprochen. Es ist tatsächlich sehr einfach, den Code zu teilen, den ich anhand von Online-Informationen geübt habe.

Im Allgemeinen wird unser Datenimportvorgang dadurch implementiert, dass der Benutzer auf eine Schaltfläche auf der Webseite klickt, um die entsprechende js-Methode auszulösen und dann die PHP-Schnittstelle anzufordern.

Methode 1: Verwenden Sie window.open() direkt im JS-Code, um die URL der PHP-Schnittstelle zu öffnen, und Sie können die von PHP generierte Excel-Datei herunterladen.

Der PHP-Schnittstellencode lautet wie folgt:

$mysqli = mysqli_connect('localhost', 'root', '123456', 'test');
$sql = 'select * from country';
$res = mysqli_query($mysqli, $sql);
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=country.xls");
echo "code\t";
echo "name\t";
echo "population\t\n";
if(mysqli_num_rows($res) > 0) {
  while($row = mysqli_fetch_array($res)) {
    echo $row['code']."\t";
    echo $row['name']."\t";
    echo $row['population']."\t\n";
  }
}
Nach dem Login kopieren

Methode 2: Die PHP-Schnittstelle speichert zuerst die generierte Excel-Datei auf dem Server und gibt dann den Dateipfad an js zurück. js Verwenden Sie dann window.open(), um den Dateipfad zum Herunterladen zu öffnen.

Der PHP-Schnittstellencode lautet wie folgt:

$mysqli = mysqli_connect('localhost', 'root', '123456', 'test');
$sql = 'select * from country';
$res = mysqli_query($mysqli, $sql);
$file = fopen('./country.xls', 'w');
fwrite($file, "code\tname\tpopulation\t\n");
if(mysqli_num_rows($res) > 0) {
  while($row = mysqli_fetch_array($res)) {
    fwrite($file, $row['code']."\t".$row['name']."\t".$row['population']."\t\n");//这里写得不好,应该把所有文件内容组装到一个字符串中然后一次性写入文件。
  }
}
fclose($file);
echo 'http://www.jtw.com/....../country.xls';//这里返回文件路径给js
Nach dem Login kopieren

Die beiden Methoden sind sehr ähnlich. Sie können die Daten in der Datenbank in eine Excel-Datei exportieren und die Datei herunterladen wie folgt:

Bei Bedarf können Sie auch natives PHP verwenden, um den Inhalt der Excel-Datei zu lesen. Dies wird hauptsächlich verwendet, wenn die Daten in der Excel-Datei gelesen werden müssen in die Datenbank importiert.

Der Code lautet wie folgt: (Hier zeigen wir nur, wie Dateidaten in ein Array eingelesen werden)

$path = './country.xls';
$file = fopen($path, 'r');
//标题行读取(第一行)
$row = fgets($file);
$row = explode("\t", $row);
$title = array();
foreach($row as $k => $v) {
  $title[$k] = str_replace("\n", '', $v);
}
//内容读取
$data = array();
$count = 0;
while(!feof($file)) {
  $row = fgets($file);
  $row = explode("\t", $row);
  if(!$row[0]) continue;//去除最后一行
  foreach($title as $k => $v) {
    $data[$count][$title[$k]] = $row[$k];
  }
  $count ++;
}
fclose($file);
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($data);
Nach dem Login kopieren

Es gibt jedoch ein Problem mit Excel-Dateien, die von nativem PHP generiert wurden, d. h. Jedes Mal, wenn Sie die Datei bearbeiten. Beim Speichern von Dateien tritt immer das folgende Screenshot-Problem auf:

Ich kenne den Grund nicht, vielleicht gibt es Probleme mit der generierten Datei selbst . . .

Und wenn natives PHP zum Lesen der generierten Excel-Datei verwendet wird, kommt es zu seltsamen Situationen, wie z. B. verstümmelten chinesischen Zeichen. Daher ist es am besten, natives PHP nur unter bestimmten Umständen zum Generieren von Excel-Dateien zu verwenden: einfach Daten aus der Datenbank in eine Datei exportieren, um sie einfach anzuzeigen, ohne die Datei zu ändern oder zu lesen. In diesem Fall reicht die Verwendung von nativem PHP zum Generieren von Excel aus, um die Anforderungen zu erfüllen, wodurch die Mühe entfällt, Bibliotheken von Drittanbietern für den Betrieb von Excel zu verwenden. Wenn Sie jedoch nach dem Generieren der Datei noch Daten ändern, speichern und lesen müssen, sollten Sie einfach Bibliotheken von Drittanbietern wie PHPExcel verwenden, um Lese- und Schreibvorgänge auszuführen, wodurch viele komplizierte Probleme vermieden werden können.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Detaillierte Erläuterung der Implementierungsschritte der Laravel-Operation SMS-Versand der Bestätigungscodefunktion

Detaillierte Erläuterung des PHP-Singletons Modus-Anwendungsfall

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zum Lesen und Schreiben von Excel-Dateien mit nativem 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