phpExcel导出大量数据出现内存溢出错误的解决方法_PHP
phpExcel将读取的单元格信息保存在内存中,我们可以通过
复制代码 代码如下:
PHPExcel_Settings::setCacheStorageMethod()
来设置不同的缓存方式,已达到降低内存消耗的目的!
1、将单元格数据序列化后保存在内存中
复制代码 代码如下:
PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized;
2、将单元格序列化后再进行Gzip压缩,然后保存在内存中
复制代码 代码如下:
PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
3、缓存在临时的磁盘文件中,速度可能会慢一些
复制代码 代码如下:
PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;
4、保存在php://temp
复制代码 代码如下:
PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
5、保存在memcache中
复制代码 代码如下:
PHPExcel_CachedObjectStorageFactory::cache_to_memcache
举例:
第4中方式:
复制代码 代码如下:
$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
$cacheSettings = array( ' memoryCacheSize ' => '8MB'
);
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
第5种:
复制代码 代码如下:
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_memcache;
$cacheSettings = array( 'memcacheServer' => 'localhost',
'memcachePort' => 11211,
'cacheTime' => 600
);
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
其它的方法
第一个方法,你可以考虑生成多个sheet的方式,不需要生成多个excel文件,根据你数据总量计算每个sheet导出多少行, 下面是PHPExcel生成多个sheet方法:
面是PHPExcel生成多个sheet方法:
复制代码 代码如下:
$sheet = $objPHPExcel->getActiveSheet();
$sheet->setCellValue('A1',$x);
$sheet->setCellValue('B1',$y);
第二个方法,你可以考虑ajax来分批导出,不用每次刷新页面。
复制代码 代码如下:
export to Excel
$('#export').click(function() {
$.ajax({
url: "export.php",
data: getData(), //这个地方你也可以在php里获取,一般读数据库
success: function(response){
window.location.href = response.url;
}
})
});
复制代码 代码如下:
//export.php
$data = $_POST['data'];
$xls = new PHPExcel();
$xls->loadData($formattedData);
$xls->exportToFile('excel.xls');
$response = array(
'success' => true,
'url' => $url
);
header('Content-type: application/json');
echo json_encode($response);
?>
数据量很大的话,建议采用第二种方法,ajax来导出数据,上面方法简单给了个流程,具体你自己补充!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Avec l’avènement de l’ère numérique, les données sont devenues l’élément le plus important de notre vie quotidienne et de notre travail, et les fichiers Excel sont devenus l’un des outils importants pour le traitement des données. Je pense que de nombreux développeurs PHP seront souvent confrontés à l'utilisation de fichiers Excel pour le traitement des données et les opérations au travail. Cet article vous présentera les méthodes et précautions d'utilisation de la bibliothèque PHPExcel pour traiter les fichiers Excel. Qu’est-ce que PHPExcel ? PHPExcel est une classe PHP

Guide complet : Comment traiter des fichiers Excel à l'aide de l'extension PHP PHPExcel Introduction : Les fichiers Excel sont souvent utilisés comme format courant pour le stockage et l'échange de données lors du traitement de grandes quantités de données et de l'analyse statistique. En utilisant l'extension PHP PHPExcel, nous pouvons facilement lire, écrire et modifier des fichiers Excel pour traiter efficacement les données Excel. Cet article explique comment utiliser l'extension PHP PHPExcel pour traiter des fichiers Excel et fournit des exemples de code. 1. Installez PHPExc

La différence entre le dépassement de mémoire et la fuite de mémoire est que le dépassement de mémoire signifie que le programme ne peut pas obtenir l'espace mémoire requis lors de la demande de mémoire, tandis que la fuite de mémoire signifie que la mémoire allouée par le programme pendant l'exécution ne peut pas être libérée normalement. Un dépassement de mémoire est généralement dû. aux besoins du programme. La mémoire dépasse la limite de mémoire disponible, ou des appels récursifs entraînent un épuisement de l'espace de la pile, ou des fuites de mémoire sont causées par une mémoire allouée dynamiquement non libérée dans le programme, des références d'objet qui ne sont pas libérées correctement ou des références circulaires. . de.

Différence : un dépassement de mémoire signifie que lorsque le programme demande de la mémoire, il n'y a pas assez d'espace mémoire à utiliser et le système ne peut plus allouer l'espace dont vous avez besoin. Une fuite de mémoire signifie que le programme ne peut pas libérer l'espace mémoire appliqué après l'application ; pour la mémoire, les dommages causés par une fuite de mémoire peuvent être ignorés, mais trop de fuites de mémoire entraîneront un débordement de mémoire.

PHPEXCEL est une excellente bibliothèque de classes PHP pour lire et écrire des fichiers Excel. Elle fournit une API très suffisante qui nous permet d'utiliser PHP pour lire et écrire des fichiers Excel. Parfois, nous devons convertir des fichiers Excel en fichiers CSV pour les utiliser à certaines occasions. Ainsi, cet article décrit principalement comment utiliser la bibliothèque de classes PHPEXCEL pour convertir des fichiers Excel en fichiers CSV et les ouvrir.

Comment résoudre le problème de débordement de mémoire dans le développement PHP nécessite des exemples de code spécifiques. Comme PHP est de plus en plus largement utilisé, le problème de débordement de mémoire dans le développement PHP est devenu un défi courant auquel sont confrontés les développeurs. Le dépassement de mémoire fait référence à une situation dans laquelle la mémoire demandée par un programme dépasse la limite d'espace mémoire pendant le fonctionnement, entraînant une exception ou un crash du programme. Cet article explique comment résoudre le problème de débordement de mémoire dans le développement PHP et fournit des exemples de code spécifiques. Optimiser la structure du code Tout d'abord, nous devons optimiser la structure du code. Un simple et de haut niveau

Java est un langage de programmation populaire lors du développement d'applications Java, vous pouvez rencontrer des erreurs de dépassement de mémoire JVM. Cette erreur provoque généralement le crash de l'application, affectant l'expérience utilisateur. Cet article explorera les causes des erreurs de dépassement de mémoire JVM et comment gérer et éviter de telles erreurs. Qu’est-ce qu’une erreur de débordement de mémoire JVM ? La machine virtuelle Java (JVM) est l'environnement d'exécution des applications Java. Dans la JVM, la mémoire est divisée en plusieurs zones, notamment le tas, la zone de méthode, la pile, etc. Le tas est utilisé pour stocker les objets créés

Comment résoudre : Erreur de performances Java : Débordement de mémoire Introduction : Le débordement de mémoire (OutofMemoryError) est l'un des problèmes de performances courants en Java. Une erreur de dépassement de mémoire se produit lorsque la mémoire requise par un programme dépasse l'espace mémoire fourni par la machine virtuelle. Cet article présentera quelques méthodes courantes pour résoudre les erreurs de dépassement de mémoire et fournira des exemples de code correspondants. 1. Causes des erreurs de dépassement de mémoire 1.1 Trop d'objets sont créés En Java, chaque objet occupe une certaine quantité d'espace mémoire. Si Cheng
