Rumah pembangunan bahagian belakang tutorial php phpExcel导出大量数据出现内存溢出错误的解决方法_PHP

phpExcel导出大量数据出现内存溢出错误的解决方法_PHP

Jun 01, 2016 pm 12:07 PM
phpexcel limpahan ingatan

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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Lengkap: Cara memproses fail Excel menggunakan sambungan php PHPExcel Panduan Lengkap: Cara memproses fail Excel menggunakan sambungan php PHPExcel Jul 28, 2023 pm 10:01 PM

Panduan Lengkap: Cara Memproses Fail Excel Menggunakan Sambungan PHP PHPExcel Pengenalan: Fail Excel sering digunakan sebagai format biasa untuk penyimpanan dan pertukaran data apabila memproses sejumlah besar data dan analisis statistik. Menggunakan sambungan PHP PHPExcel, kami boleh membaca, menulis dan mengubah suai fail Excel dengan mudah untuk memproses data Excel dengan berkesan. Artikel ini akan memperkenalkan cara menggunakan sambungan PHP PHPExcel untuk memproses fail Excel dan menyediakan contoh kod. 1. Pasang PHPExc

Pembangunan PHP: Gunakan PHPExcel untuk memproses fail Excel Pembangunan PHP: Gunakan PHPExcel untuk memproses fail Excel Jun 15, 2023 pm 03:45 PM

Dengan kemunculan era digital, data telah menjadi bahagian terpenting dalam kehidupan dan kerja harian kita, dan fail Excel telah menjadi salah satu alat penting untuk pemprosesan data. Saya percaya bahawa ramai pembangun PHP akan sering menghadapi penggunaan fail Excel untuk pemprosesan data dan operasi di tempat kerja. Artikel ini akan memperkenalkan anda kepada kaedah dan langkah berjaga-jaga untuk menggunakan perpustakaan PHPExcel untuk memproses fail Excel. Apakah PHPExcel? PHPExcel ialah kelas PHP

内存泄露和内存溢出的区别是什么 内存泄露和内存溢出的区别是什么 Dec 03, 2020 pm 05:22 PM

区别:内存溢出是指程序在申请内存时,没有足够的内存空间供其使用, 系统已经不能再分配出你所需要的空间;内存泄露是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但是内存泄漏次数多了就会导致内存溢出。

Apakah perbezaan antara limpahan memori dan kebocoran memori? Apakah perbezaan antara limpahan memori dan kebocoran memori? Aug 21, 2023 pm 03:14 PM

Perbezaan antara limpahan memori dan kebocoran memori ialah limpahan memori bermakna program tidak dapat memperoleh ruang memori yang diperlukan semasa memohon memori, manakala kebocoran memori bermakna memori yang diperuntukkan oleh atur cara semasa berjalan tidak dapat dilepaskan secara normal kepada keperluan program Memori melebihi had memori yang tersedia, atau panggilan rekursif menyebabkan ruang timbunan kehabisan, atau kebocoran memori disebabkan oleh memori yang diperuntukkan secara dinamik yang tidak dikeluarkan dalam program, rujukan objek yang tidak dikeluarkan. dengan betul, atau rujukan pekeliling daripada.

Cara menggunakan phpexcel untuk menukar fail Excel kepada fail CSV dan membukanya Cara menggunakan phpexcel untuk menukar fail Excel kepada fail CSV dan membukanya Mar 27, 2023 pm 04:16 PM

PHPEXCEL ialah perpustakaan kelas PHP yang sangat baik untuk membaca dan menulis fail Excel. Ia menyediakan API yang sangat mencukupi yang membolehkan kami menggunakan PHP untuk membaca dan menulis fail Excel. Kadangkala, kita perlu menukar fail Excel kepada fail CSV untuk digunakan pada beberapa keadaan. Jadi, artikel ini menerangkan terutamanya cara menggunakan perpustakaan kelas PHPEXCEL untuk menukar fail Excel kepada fail CSV dan membukanya.

Cara Membetulkan: Ralat Prestasi Java: Limpahan Memori Cara Membetulkan: Ralat Prestasi Java: Limpahan Memori Aug 19, 2023 am 11:05 AM

Cara menyelesaikan: Ralat Prestasi Java: Limpahan Memori Pengenalan: Limpahan memori (OutofMemoryError) ialah salah satu masalah prestasi biasa dalam Java. Ralat limpahan memori berlaku apabila memori yang diperlukan oleh atur cara melebihi ruang memori yang disediakan oleh mesin maya. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk menyelesaikan ralat limpahan memori dan memberikan contoh kod yang sepadan. 1. Punca ralat limpahan ingatan 1.1 Terlalu banyak objek dicipta Dalam Java, setiap objek menempati sejumlah ruang ingatan. Jika Cheng

Ralat Java: Ralat limpahan memori JVM, cara menangani dan mengelak Ralat Java: Ralat limpahan memori JVM, cara menangani dan mengelak Jun 24, 2023 pm 02:19 PM

Java ialah bahasa pengaturcaraan yang popular Semasa pembangunan aplikasi Java, anda mungkin menghadapi ralat limpahan memori JVM. Ralat ini biasanya menyebabkan aplikasi ranap, menjejaskan pengalaman pengguna. Artikel ini akan meneroka punca ralat limpahan memori JVM dan cara menangani dan mengelakkan ralat tersebut. Apakah ralat limpahan memori JVM? Mesin Maya Java (JVM) ialah persekitaran berjalan untuk aplikasi Java. Dalam JVM, memori dibahagikan kepada beberapa kawasan, termasuk timbunan, kawasan kaedah, tindanan, dll. Timbunan digunakan untuk menyimpan objek yang dicipta

Bagaimana untuk menyelesaikan masalah limpahan memori dalam pembangunan PHP Bagaimana untuk menyelesaikan masalah limpahan memori dalam pembangunan PHP Oct 11, 2023 am 09:13 AM

Bagaimana untuk menyelesaikan masalah limpahan memori dalam pembangunan PHP memerlukan contoh kod khusus Memandangkan PHP semakin digunakan secara meluas, masalah limpahan memori dalam pembangunan PHP juga telah menjadi cabaran biasa yang dihadapi oleh pembangun. Limpahan memori merujuk kepada situasi di mana memori yang diminta oleh atur cara melebihi had ruang memori semasa operasi, mengakibatkan pengecualian atau ranap dalam atur cara. Artikel ini akan memperkenalkan cara menyelesaikan masalah limpahan memori dalam pembangunan PHP dan menyediakan beberapa contoh kod khusus. Mengoptimumkan struktur kod Pertama, kita perlu mengoptimumkan struktur kod. Sederhana dan tahap tinggi

See all articles