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来导出数据,上面方法简单给了个流程,具体你自己补充!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Vollständiger Leitfaden: So verarbeiten Sie Excel-Dateien mit der PHP-Erweiterung PHPExcel Einführung: Excel-Dateien werden häufig als gängiges Format für die Datenspeicherung und den Datenaustausch bei der Verarbeitung großer Datenmengen und statistischen Analysen verwendet. Mit der PHP-Erweiterung PHPExcel können wir Excel-Dateien einfach lesen, schreiben und ändern, um Excel-Daten effektiv zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mit der PHP-Erweiterung PHPExcel Excel-Dateien verarbeiten und Codebeispiele bereitstellen. 1. Installieren Sie PHPExc

Mit dem Aufkommen des digitalen Zeitalters sind Daten zum wichtigsten Bestandteil unseres täglichen Lebens und unserer Arbeit geworden, und Excel-Dateien sind zu einem der wichtigsten Werkzeuge für die Datenverarbeitung geworden. Ich glaube, dass viele PHP-Entwickler bei der Arbeit häufig auf die Verwendung von Excel-Dateien für die Datenverarbeitung und Vorgänge stoßen werden. In diesem Artikel werden Ihnen die Methoden und Vorsichtsmaßnahmen für die Verwendung der PHPExcel-Bibliothek zur Verarbeitung von Excel-Dateien vorgestellt. Was ist PHPExcel? PHPExcel ist eine PHP-Klasse

Unterschied: Speicherüberlauf bedeutet, dass, wenn das Programm Speicher anfordert, nicht genügend Speicherplatz zur Verfügung steht und das System den benötigten Speicherplatz nicht mehr zuweisen kann; Speicherverlust bedeutet, dass das Programm den zugewiesenen Speicherplatz nach der Anwendung nicht freigeben kann Für den Speicher kann der Schaden eines Speicherlecks ignoriert werden, aber zu viele Speicherlecks führen zu einem Speicherüberlauf.

Der Unterschied zwischen Speicherüberlauf und Speicherverlust besteht darin, dass ein Speicherüberlauf bedeutet, dass das Programm beim Anfordern von Speicher nicht den erforderlichen Speicherplatz erhalten kann, während ein Speicherverlust bedeutet, dass der vom Programm während der Ausführung zugewiesene Speicher normalerweise nicht freigegeben werden kann Je nach Bedarf des Programms überschreitet der Speicher das verfügbare Speicherlimit, oder rekursive Aufrufe führen zur Erschöpfung des Stapelspeichers, oder Speicherlecks werden durch nicht freigegebenen, dynamisch zugewiesenen Speicher im Programm, nicht korrekt freigegebene Objektverweise oder Zirkelverweise verursacht . von.

PHPEXCEL ist eine hervorragende PHP-Klassenbibliothek zum Lesen und Schreiben von Excel-Dateien. Sie bietet eine sehr ausreichende API, die es uns ermöglicht, PHP zum Lesen und Schreiben von Excel-Dateien zu verwenden. Manchmal müssen wir Excel-Dateien zur gelegentlichen Verwendung in CSV-Dateien konvertieren. In diesem Artikel wird daher hauptsächlich beschrieben, wie Sie mithilfe der PHPEXCEL-Klassenbibliothek Excel-Dateien in CSV-Dateien konvertieren und öffnen.

Um das Speicherüberlaufproblem bei der PHP-Entwicklung zu lösen, sind spezifische Codebeispiele erforderlich. Da PHP immer häufiger verwendet wird, ist das Speicherüberlaufproblem bei der PHP-Entwicklung zu einer häufigen Herausforderung für Entwickler geworden. Speicherüberlauf bezieht sich auf eine Situation, in der der von einem Programm angeforderte Speicher während des Betriebs die Speicherplatzbeschränkung überschreitet, was zu einer Ausnahme oder einem Absturz im Programm führt. In diesem Artikel wird erläutert, wie das Speicherüberlaufproblem in der PHP-Entwicklung gelöst werden kann, und es werden einige spezifische Codebeispiele bereitgestellt. Optimierung der Codestruktur Zuerst müssen wir die Codestruktur optimieren. Ein einfaches und hochwertiges

Java ist eine beliebte Programmiersprache. Bei der Entwicklung von Java-Anwendungen können JVM-Speicherüberlauffehler auftreten. Dieser Fehler führt normalerweise zum Absturz der Anwendung und beeinträchtigt das Benutzererlebnis. In diesem Artikel werden die Ursachen von JVM-Speicherüberlauffehlern und der Umgang mit solchen Fehlern sowie deren Vermeidung untersucht. Was ist ein JVM-Speicherüberlauffehler? Die Java Virtual Machine (JVM) ist die Ausführungsumgebung für Java-Anwendungen. In der JVM ist der Speicher in mehrere Bereiche unterteilt, einschließlich Heap, Methodenbereich, Stapel usw. Der Heap wird zum Speichern erstellter Objekte verwendet

So lösen Sie: Java-Leistungsfehler: Speicherüberlauf Einführung: Speicherüberlauf (OutofMemoryError) ist eines der häufigsten Leistungsprobleme in Java. Ein Speicherüberlauffehler tritt auf, wenn der von einem Programm benötigte Speicher den von der virtuellen Maschine bereitgestellten Speicherplatz übersteigt. In diesem Artikel werden einige gängige Methoden zur Behebung von Speicherüberlauffehlern vorgestellt und entsprechende Codebeispiele bereitgestellt. 1. Ursachen für Speicherüberlauffehler 1.1 Es werden zu viele Objekte erstellt. In Java belegt jedes Objekt eine bestimmte Menge an Speicherplatz. Wenn Cheng
