欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

phpExcel導(dǎo)出大量數(shù)據(jù)出現(xiàn)內(nèi)存溢出錯(cuò)誤的解決方法

 更新時(shí)間:2013年02月28日 21:18:12   作者:  
我們經(jīng)常會(huì)使用phpExcel導(dǎo)入或?qū)離ls文件,但是如果一次導(dǎo)出數(shù)據(jù)比較大就會(huì)出現(xiàn)內(nèi)存溢出錯(cuò)誤,下面我來總結(jié)解決辦法

phpExcel將讀取的單元格信息保存在內(nèi)存中,我們可以通過

復(fù)制代碼 代碼如下:

PHPExcel_Settings::setCacheStorageMethod()

來設(shè)置不同的緩存方式,已達(dá)到降低內(nèi)存消耗的目的!

1、將單元格數(shù)據(jù)序列化后保存在內(nèi)存中

復(fù)制代碼 代碼如下:

PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized;

2、將單元格序列化后再進(jìn)行Gzip壓縮,然后保存在內(nèi)存中

復(fù)制代碼 代碼如下:

PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;

3、緩存在臨時(shí)的磁盤文件中,速度可能會(huì)慢一些

復(fù)制代碼 代碼如下:

PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;

4、保存在php://temp

復(fù)制代碼 代碼如下:

PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;

5、保存在memcache中

復(fù)制代碼 代碼如下:

PHPExcel_CachedObjectStorageFactory::cache_to_memcache

舉例:

第4中方式:

 

復(fù)制代碼 代碼如下:

$cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp; 
$cacheSettings = array( ' memoryCacheSize '  => '8MB' 
                ); 
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);

第5種:

 

復(fù)制代碼 代碼如下:

$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_memcache; 
$cacheSettings = array( 'memcacheServer'  => 'localhost', 
                        'memcachePort'    => 11211, 
                        'cacheTime'       => 600 
                      ); 
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);

其它的方法

第一個(gè)方法,你可以考慮生成多個(gè)sheet的方式,不需要生成多個(gè)excel文件,根據(jù)你數(shù)據(jù)總量計(jì)算每個(gè)sheet導(dǎo)出多少行, 下面是PHPExcel生成多個(gè)sheet方法:

面是PHPExcel生成多個(gè)sheet方法:

復(fù)制代碼 代碼如下:

$sheet = $objPHPExcel->getActiveSheet();
$sheet->setCellValue('A1',$x); 
$sheet->setCellValue('B1',$y);

第二個(gè)方法,你可以考慮ajax來分批導(dǎo)出,不用每次刷新頁(yè)面。

 

復(fù)制代碼 代碼如下:

<a href="#" id="export">export to Excel</a>
$('#export').click(function() { 
    $.ajax({ 
        url: "export.php",  
        data: getData(),  //這個(gè)地方你也可以在php里獲取,一般讀數(shù)據(jù)庫(kù) 
        success: function(response){ 
            window.location.href = response.url; 
        } 
    }) 
});

復(fù)制代碼 代碼如下:

<?php
//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);
?>

數(shù)據(jù)量很大的話,建議采用第二種方法,ajax來導(dǎo)出數(shù)據(jù),上面方法簡(jiǎn)單給了個(gè)流程,具體你自己補(bǔ)充!

相關(guān)文章

  • PHP實(shí)現(xiàn)生成模糊圖片的方法示例

    PHP實(shí)現(xiàn)生成模糊圖片的方法示例

    這篇文章主要介紹了PHP實(shí)現(xiàn)生成模糊圖片的方法,涉及php高斯算法實(shí)現(xiàn)圖片模糊功能相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-12-12
  • PHP隨機(jī)生成唯一HASH值自定義函數(shù)

    PHP隨機(jī)生成唯一HASH值自定義函數(shù)

    這篇文章主要介紹了PHP隨機(jī)生成唯一HASH值自定義函數(shù),本文先是給出了需求,然后給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04
  • 介紹幾個(gè)array庫(kù)的新函數(shù) php

    介紹幾個(gè)array庫(kù)的新函數(shù) php

    介紹幾個(gè)array庫(kù)的新函數(shù) php...
    2006-12-12
  • PHP編程中字符串處理的5個(gè)技巧小結(jié)

    PHP編程中字符串處理的5個(gè)技巧小結(jié)

    PHP編程中字符串處理的5個(gè)技巧小結(jié)...
    2007-11-11
  • windows下開發(fā)并編譯PHP擴(kuò)展的方法

    windows下開發(fā)并編譯PHP擴(kuò)展的方法

    開發(fā)PHP擴(kuò)展對(duì)于普通程序員來講可能一直是一件很神秘的工作,其實(shí),只要你對(duì)C語(yǔ)言熟悉,了解了開發(fā)PHP擴(kuò)展的步驟和規(guī)則,開發(fā)PHP擴(kuò)展也是一件很普通的工作。
    2011-03-03
  • 利用PHP自動(dòng)生成印有用戶信息的名片

    利用PHP自動(dòng)生成印有用戶信息的名片

    對(duì)于日常照片的處理場(chǎng)景,通常我們的選擇都是利用手機(jī)上的眾多P圖軟件。使用它們就可以輕松便捷的實(shí)現(xiàn)添加文字的功能。而作為碼農(nóng)的我們,當(dāng)某一天我們需要在編寫的網(wǎng)頁(yè)應(yīng)用里添加這一功能時(shí),我們?cè)摾煤畏N語(yǔ)言和工具來實(shí)現(xiàn)這一目標(biāo)呢? 下面跟小編一起來看看。
    2016-08-08
  • PHP設(shè)計(jì)模式之觀察者模式淺析

    PHP設(shè)計(jì)模式之觀察者模式淺析

    觀察者模式是極其重要的一個(gè)設(shè)計(jì)模式,也是我?guī)啄觊_發(fā)過程中使用最多的設(shè)計(jì)模式,本文首先概述觀察者模式的基本概念和Demo實(shí)現(xiàn),接著是觀察者模式在Java和Spring中的應(yīng)用,最后是對(duì)觀察者模式的應(yīng)用場(chǎng)景和優(yōu)缺點(diǎn)進(jìn)行總結(jié)
    2023-04-04
  • php生成圖片縮略圖的方法

    php生成圖片縮略圖的方法

    這篇文章主要介紹了php生成圖片縮略圖的方法,涉及php操作圖片的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 詳談symfony window下的安裝 安裝時(shí)候出現(xiàn)的問題以及解決方法

    詳談symfony window下的安裝 安裝時(shí)候出現(xiàn)的問題以及解決方法

    下面小編就為大家?guī)硪黄斦剆ymfony window下的安裝 安裝時(shí)候出現(xiàn)的問題以及解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Yii2——使用數(shù)據(jù)庫(kù)操作匯總(增刪查改、事務(wù))

    Yii2——使用數(shù)據(jù)庫(kù)操作匯總(增刪查改、事務(wù))

    本篇文章主要介紹了Yii2——使用數(shù)據(jù)庫(kù)操作匯總,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12

最新評(píng)論