Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Wissenspunkte zum PHP-Datenexport

Detaillierte Erläuterung der Wissenspunkte zum PHP-Datenexport

小云云
小云云Original
2018-02-22 10:16:501397Durchsuche

Vor kurzem arbeite ich an einem Backend-Management-Projekt und es besteht normalerweise die Notwendigkeit, Daten nach Excel im Backend zu exportieren. Normalerweise wird empfohlen, PHP Excel zu verwenden, und das ist auch der Fall ein sehr nützliches entsprechendes Paket für PHP Excel.

Zuerst ist die Verwendung sehr einfach, aber wenn die zu exportierenden Daten Zehntausende erreichen, führt dies direkt zu einem Problem mit unzureichendem Speicher.

Dann habe ich ein paar Lösungen gefunden.

Frontend-Lösung

PHP arbeitet mit SheetJS/js-xlsx zusammen, um eine große Menge an Excel-Daten zu exportieren

Die Vorteile dieser Lösung liegen nicht in der Notwendigkeit zusätzlicher Schnittstellen, sondern in der Abhängigkeit von Frontend-Entwicklern.

Export nach CSV

Diese Lösung ist schneller und vollständig im Backend implementiert. Der Nachteil besteht darin, dass das CSV-Format relativ hohe Anforderungen an das Exportformular stellt , und die Anforderung ist reine Daten können nicht in Rich-Text-Form wie Bildern vorliegen.

Im Folgenden wird hauptsächlich das Exportieren von CSV vorgestellt

Einführung in die offizielle PHP-Dokumentation


<?php

$list = array (
  array(&#39;aaa&#39;, &#39;bbb&#39;, &#39;ccc&#39;, &#39;dddd&#39;),
  array(&#39;123&#39;, &#39;456&#39;, &#39;789&#39;),
  array(&#39;"aaa"&#39;, &#39;"bbb"&#39;)
);

$fp = fopen(&#39;file.csv&#39;, &#39;w&#39;);

foreach ($list as $fields) {
  fputcsv($fp, $fields);
}

fclose($fp);
?>

Vollständiges Beispiel exportieren


<?php

$name = &#39;test&#39;;
header ( "Content-type:application/vnd.ms-excel" );
header ( "Content-Disposition:filename=".$name.".csv" );
header (&#39;Cache-Control: max-age=0&#39;);

//打开PHP文件句柄,php://output 表示直接输出到浏览器
$fp = fopen(&#39;php://output&#39;, &#39;a&#39;);  

// 写入BOM头,防止乱码
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); 

// 生成的测试数据
function test()
{
  for ($i=0; $i < 150000; $i++) {
    yield [&#39;name&#39;, $i, &#39;男&#39;];
  }
}

// 表头
$headers = [&#39;名字&#39;, &#39;年龄&#39;, &#39;性别&#39;];

fputcsv($fp, $headers);

foreach (test() as $value) {
  fputcsv($fp, $value);
}

fclose($fp);
?>

Durch die Verwendung mit Chunk in Laravel können alle Daten einfach und schnell exportiert werden.

Verwandte Empfehlungen:

Tipps zum Exportieren von Daten nach Excel mit Python

Spekulativ: Wie man PHP verwendet zum Exportieren von Daten. Exportieren in eine Excel-Tabelle (grafische Erklärung)

php exportiert Daten in das Excel-Dateiformat

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Wissenspunkte zum PHP-Datenexport. 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