国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP讀取超大的excel文件數據的方案

dkzwm / 3295人閱讀

摘要:場景和痛點說明今天因為一個老同學找我,說自己公司的物流業務都是現在用處理,按月因為數據量大,一個差不多有百萬數據,文件有接近,打開和搜索就相當的慢聯想到場景要導入數據,可能數據量很大,這里利用常用的一些方法比如會常有時間和內存限制問題下面我

場景和痛點 說明
今天因為一個老同學找我,說自己公司的物流業務都是現在用excel處理,按月因為數據量大,一個excel差不多有百萬數據,文件有接近100M,打開和搜索就相當的慢

聯想到場景:要導入數據,可能excel數據量很大,這里利用常用的一些方法比如phpexcel會常有時間和內存限制問題

下面我們就利用一個利用流處理的類庫SpreadsheetReader來做大excel的讀取

編寫過程 說明
關鍵具體在代碼里注釋
代碼
Sheets();
if (!$sheets) {
    die("沒有工作表");
}

//改變當前處理的工作表
$Reader->ChangeSheet(0);

//打印當前所在工作表的當前所在行數據
var_dump($Reader->current());

//因為reader類集成了Iter所以可以用迭代方式處理
//這里提醒 如果文件超大,這邊的處理速度會過慢,不過不會引發內存性能問題
//$i = 0;
//foreach ($Reader as $Row)
//{
//    if ($i>=3) {
//        break;
//    }
//
//    echo $i . PHP_EOL;
//    print_r($Row);
//
//    $i++;
//}

$endTime = microtime(true);
$memoryUse = memory_get_usage();

echo "內存占用:" . convert($memoryUse) . "; 用時:" . ($endTime - $startTime) . PHP_EOL;
結果 測試說明
上面讀取的example1.xlsx文件有100M左右,讀寫過慢,測試只開了讀取當前默認工作表的當前所在行數據
因數據敏感,已做屏蔽
日志記錄內存使用率
147.77 kb
array (size=50)
  0 => string "xxxxxxxxxxxxxx" (length=25)
  1 => string "xxxxxxxxxxxxxx" (length=15)
  2 => string "xxxxxxxxxxxxxx" (length=18)
  3 => string "xxxxxxxxxxxxxx" (length=12)
  4 => string "xxxxxxxxxxxxxx" (length=12)
  5 => string "xxxxxxxxxxxxxx" (length=12)
  6 => string "xxxxxxxxxxxxxx" (length=24)
  7 => string "xxxxxxxxxxxxxx" (length=12)
  8 => string "xxxxxxxxxxxxxx" (length=27)
  9 => string "xxxxxxxxxxxxxx" (length=12)
  10 => string "xxxxxxxxxxxxxx" (length=15)
  11 => string "xxxxxxxxxxxxxx" (length=28)
  12 => string "xxxxxxxxxxxxxx" (length=9)
  13 => string "xxxxxxxxxxxxxx" (length=12)
  14 => string "xxxxxxxxxxxxxx" (length=9)
  15 => string "xxxxxxxxxxxxxx" (length=6)
  16 => string "xxxxxxxxxxxxxx" (length=9)
  17 => string "xxxxxxxxxxxxxx" (length=3)
  18 => string "xxxxxxxxxxxxxx" (length=6)
  19 => string "xxxxxxxxxxxxxx" (length=3)
  20 => string "xxxxxxxxxxxxxx" (length=15)
  21 => string "xxxxxxxxxxxxxx" (length=15)
  22 => string "xxxxxxxxxxxxxx" (length=19)
  23 => string "xxxxxxxxxxxxxx" (length=13)
  24 => string "xxxxxxxxxxxxxx" (length=19)
  25 => string "xxxxxxxxxxxxxx" (length=12)
  26 => string "xxxxxxxxxxxxxx" (length=12)
  27 => string "xxxxxxxxxxxxxx" (length=12)
  28 => string "xxxxxxxxxxxxxx" (length=6)
  29 => string "xxxxxxxxxxxxxx" (length=12)
  30 => string "xxxxxxxxxxxxxx" (length=6)
  31 => string "xxxxxxxxxxxxxx" (length=15)
  32 => string "xxxxxxxxxxxxxx" (length=24)
  33 => string "xxxxxxxxxxxxxx" (length=18)
  34 => string "xxxxxxxxxxxxxx" (length=18)
  35 => string "xxxxxxxxxxxxxx" (length=24)
  36 => string "xxxxxxxxxxxxxx" (length=12)
  37 => string "xxxxxxxxxxxxxx" (length=18)
  38 => string "xxxxxxxxxxxxxx" (length=21)
  39 => string "xxxxxxxxxxxxxx" (length=9)
  40 => string "xxxxxxxxxxxxxx" (length=9)
  41 => string "xxxxxxxxxxxxxx" (length=18)
  42 => string "xxxxxxxxxxxxxx" (length=21)
  43 => string "xxxxxxxxxxxxxx" (length=15)
  44 => string "xxxxxxxxxxxxxx" (length=12)
  45 => string "xxxxxxxxxxxxxx" (length=6)
  46 => string "xxxxxxxxxxxxxx" (length=12)
  47 => string "xxxxxxxxxxxxxx" (length=22)
  48 => string "xxxxxxxxxxxxxx" (length=22)
  49 => string "" (length=0)

內存占用:207.55 kb; 用時:9.5835480690002

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/29029.html

相關文章

  • PHP導出超大CSV格式Excel方案

    摘要:場景和痛點說明我們工作場景都常會導出相關的數據,有時候需要大量的數據,,都有可能我們現有方案都是直接利用等類庫來操作,的加載或是寫入一次導出會遇到超時內存和時間限制問題,就算我們依舊不是最好的方案下面我們利用輸出,把數據依次輸出清空再輸出的 場景和痛點 說明 我們工作場景都常會導出相關的excel數據,有時候需要大量的數據,10W,100W都有可能我們現有方案都是直接利用phpexce...

    yedf 評論0 收藏0
  • PHP實時生成并下載超大數據EXCEL文件

    摘要:而常用的包需要把所有數據拿到后才能生成,在面對生成超大數據量的文件時這顯然是會造成內存溢出的,所以考慮使用讓邊寫入輸出流邊讓瀏覽器下載的形式來完成需求。 最近接到一個需求,通過選擇的時間段導出對應的用戶訪問日志到excel中, 由于用戶量較大,經常會有導出50萬加數據的情況。而常用的PHPexcel包需要把所有數據拿到后才能生成excel, 在面對生成超大數據量的excel文件時這顯然...

    Neilyo 評論0 收藏0
  • php 導出 excel

    關于 PHP 導出 excel csv 常用的有 PHPexcel ,本文整理了一些其他方案。 高性能 Excel 擴展 sudo apt-get install -y zlib1g-dev git clone https://github.com/jmcnamara/libxlsxwriter.git cd libxlsxwriter make && sudo make install // ...

    付永剛 評論0 收藏0
  • 【SpringMvc】后臺系統超大報表下載超時處理

    摘要:四層負載均衡不會引起超時。動態修改包的目標地址,并轉發數據包使其到達不同的機器上來實現負載均衡的目的,因此節點不會引起超時。七層負載均衡等待上游響應超時。例如使用多線程并發減少遠程查詢的總體時間如需數據有序,可以使用方案。 B端業務經常要提供下載報表的功能,一般的方法是先查詢出所有數據,然后在內存中組裝成報表(如XLS/XLSX格式)后統一輸出。但是如果生成報表需要查詢的數據量很大,遠...

    kohoh_ 評論0 收藏0
  • 打造最全面PHPExcel開發解決方案

    摘要:過去工作中使用較多,碰到并解決了各種大大小小的問題,總結出這樣一篇文章,一方面記錄自己踩過的坑,一方面與大家分享,讓大家少走彎路,并不斷完善之,歡迎大家去上面和提交,不斷補充和優化,打造最全面的開發解決方案地址原文地址基礎小試牛刀引用文 過去工作中使用PHPExcel較多,碰到并解決了各種大大小小的問題,總結出這樣一篇文章,一方面記錄自己踩過的坑,一方面與大家分享,讓大家少走彎路,并不...

    ThinkSNS 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<