Explication détaillée des points de connaissance sur l'exportation de données PHP

小云云
Libérer: 2023-03-20 11:06:01
original
1399 Les gens l'ont consulté

Récemment, je travaille sur un projet de gestion backend, et il est généralement nécessaire d'exporter des données pour exceler dans le backend. Après les recherches précédentes, il est généralement recommandé d'utiliser php excel. J'utilise souvent laravel, et il y en a aussi. un package correspondant très utile pour php Excel.

Il est très simple à utiliser au début, mais lorsque les données à exporter atteignent des dizaines de milliers, cela posera directement le problème de mémoire insuffisante.

Ensuite, j'ai trouvé quelques solutions.

Solution front-end

PHP coopère avec SheetJS/js-xlsx pour exporter une grande quantité de données Excel

Les avantages de cette solution ne nécessitent pas d'interfaces supplémentaires, mais dépendent des développeurs front-end.

Exporter vers csv

Cette solution est plus rapide et entièrement implémentée en back-end. L'inconvénient est que le format csv a des exigences relativement élevées sur le formulaire d'exportation. , et l'exigence est pure. Les données ne peuvent pas exister sous forme de texte enrichi, comme des images.

Ce qui suit présente principalement comment exporter au format CSV

Introduction à la documentation officielle php


<?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);
?>
Copier après la connexion

Exporter un exemple complet


<?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);
?>
Copier après la connexion

L'utiliser avec chunk dans Laravel peut facilement et rapidement exporter toutes les données.

Recommandations associées :

Partage de conseils sur la façon d'exporter des données vers Excel à l'aide de Python

Spéculatif : Comment utiliser PHP pour exporter des données Exporter vers un tableau Excel (explication graphique)

php exporte les données au format de fichier execl

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!