백엔드 개발 PHP 튜토리얼 phpExcel导出大量数据出现内存溢出错误的解决方法_PHP

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

Jun 01, 2016 pm 12:07 PM
phpexcel 메모리 오버플로

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

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

전체 가이드: PHP 확장 PHPExcel을 사용하여 Excel 파일을 처리하는 방법 전체 가이드: PHP 확장 PHPExcel을 사용하여 Excel 파일을 처리하는 방법 Jul 28, 2023 pm 10:01 PM

전체 가이드: PHP 확장을 사용하여 Excel 파일을 처리하는 방법 PHPExcel 소개: Excel 파일은 대용량 데이터 처리 및 통계 분석 시 데이터 저장 및 교환을 위한 일반적인 형식으로 사용되는 경우가 많습니다. PHP 확장 PHPExcel을 사용하면 Excel 파일을 쉽게 읽고, 쓰고, 수정하여 Excel 데이터를 효과적으로 처리할 수 있습니다. 이 기사에서는 PHP 확장 PHPExcel을 사용하여 Excel 파일을 처리하고 코드 예제를 제공하는 방법을 소개합니다. 1. PHPExc 설치

PHP 개발: PHPExcel을 사용하여 Excel 파일 처리 PHP 개발: PHPExcel을 사용하여 Excel 파일 처리 Jun 15, 2023 pm 03:45 PM

디지털 시대의 도래와 함께 데이터는 우리의 일상과 업무에서 가장 중요한 부분이 되었고, 엑셀 파일은 데이터 처리를 위한 중요한 도구 중 하나가 되었습니다. 나는 많은 PHP 개발자들이 직장에서 데이터 처리 및 작업을 위해 Excel 파일을 사용하는 경우를 자주 접하게 될 것이라고 생각합니다. 이 글에서는 PHPExcel 라이브러리를 사용하여 Excel 파일을 처리하는 방법과 주의사항을 소개합니다. PHPExcel이란 무엇입니까? PHPExcel은 PHP 클래스입니다.

메모리 오버플로와 메모리 누수의 차이점은 무엇입니까? 메모리 오버플로와 메모리 누수의 차이점은 무엇입니까? Aug 21, 2023 pm 03:14 PM

메모리 오버플로와 메모리 누수의 차이점은 메모리 오버플로는 프로그램이 메모리를 신청할 때 필요한 메모리 공간을 얻을 수 없다는 것을 의미하고, 메모리 누수는 프로그램이 실행 중에 할당한 메모리를 정상적으로 해제할 수 없다는 것을 의미합니다. 메모리가 사용 가능한 메모리 제한을 초과하거나, 재귀 호출로 인해 스택 공간이 소진되거나, 프로그램에서 해제되지 않은 동적으로 할당된 메모리, 올바르게 해제되지 않은 개체 참조 또는 순환 참조로 인해 메모리 누수가 발생합니다. . 의.

메모리 누수와 메모리 오버플로의 차이점은 무엇입니까? 메모리 누수와 메모리 오버플로의 차이점은 무엇입니까? Dec 03, 2020 pm 05:22 PM

차이점: 메모리 오버플로는 프로그램이 메모리를 적용할 때 사용할 메모리 공간이 충분하지 않고 시스템이 더 이상 필요한 공간을 할당할 수 없음을 의미합니다. 메모리 누수는 프로그램이 적용 후 적용된 메모리 공간을 해제할 수 없음을 의미합니다. 메모리의 경우 메모리 누수로 인한 피해는 무시할 수 있지만 메모리 누수가 너무 많으면 메모리 오버플로가 발생합니다.

phpexcel을 사용하여 Excel 파일을 CSV 파일로 변환하고 여는 방법 phpexcel을 사용하여 Excel 파일을 CSV 파일로 변환하고 여는 방법 Mar 27, 2023 pm 04:16 PM

PHPEXCEL은 Excel 파일을 읽고 쓰는 데 탁월한 PHP 클래스 라이브러리입니다. PHP를 사용하여 Excel 파일을 읽고 쓸 수 있는 매우 충분한 API를 제공합니다. 경우에 따라 사용하기 위해 Excel 파일을 CSV 파일로 변환해야 하는 경우가 있습니다. 그래서 이번 글에서는 PHPEXCEL 클래스 라이브러리를 사용하여 엑셀 파일을 CSV 파일로 변환하고 여는 방법을 주로 설명합니다.

PHP 개발 시 메모리 오버플로 문제를 해결하는 방법 PHP 개발 시 메모리 오버플로 문제를 해결하는 방법 Oct 11, 2023 am 09:13 AM

PHP 개발에서 메모리 오버플로 문제를 해결하려면 특정 코드 예제가 필요합니다. PHP가 점점 더 널리 사용됨에 따라 PHP 개발에서 메모리 오버플로 문제는 개발자가 직면하는 일반적인 과제가 되었습니다. 메모리 오버플로란 프로그램이 요청한 메모리가 작업 중에 메모리 공간 제한을 초과하여 프로그램에서 예외가 발생하거나 충돌이 발생하는 상황을 말합니다. 이 기사에서는 PHP 개발 시 메모리 오버플로 문제를 해결하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 코드 구조 최적화 먼저 코드 구조를 최적화해야 합니다. 간단하고 높은 수준의

Java 오류: JVM 메모리 오버플로 오류, 처리 및 방지 방법 Java 오류: JVM 메모리 오버플로 오류, 처리 및 방지 방법 Jun 24, 2023 pm 02:19 PM

Java는 널리 사용되는 프로그래밍 언어입니다. Java 애플리케이션을 개발하는 동안 JVM 메모리 오버플로 오류가 발생할 수 있습니다. 이 오류는 일반적으로 애플리케이션 충돌을 발생시켜 사용자 경험에 영향을 미칩니다. 이 기사에서는 JVM 메모리 오버플로 오류의 원인과 이러한 오류를 처리하고 방지하는 방법을 살펴봅니다. JVM 메모리 오버플로 오류란 무엇입니까? JVM(Java Virtual Machine)은 Java 애플리케이션을 실행하는 환경입니다. JVM에서 메모리는 힙, 메소드 영역, 스택 등 여러 영역으로 나뉩니다. 힙은 생성된 객체를 저장하는 데 사용됩니다.

수정 방법: Java 성능 오류: 메모리 오버플로 수정 방법: Java 성능 오류: 메모리 오버플로 Aug 19, 2023 am 11:05 AM

해결 방법: Java 성능 오류: 메모리 오버플로 소개: 메모리 오버플로(OutofMemoryError)는 Java의 일반적인 성능 문제 중 하나입니다. 프로그램에 필요한 메모리가 가상 머신에서 제공하는 메모리 공간을 초과하면 메모리 오버플로 오류가 발생합니다. 이 문서에서는 메모리 오버플로 오류를 해결하는 몇 가지 일반적인 방법을 소개하고 해당 코드 예제를 제공합니다. 1. 메모리 오버플로 오류의 원인 1.1 너무 많은 객체가 생성됨 Java에서는 각 객체가 일정량의 메모리 공간을 차지합니다. 쳉이라면

See all articles