首頁  >  文章  >  後端開發  >  如何在不耗盡記憶體的情況下有效地將大型 Excel 檔案載入到 PHPExcel 中?

如何在不耗盡記憶體的情況下有效地將大型 Excel 檔案載入到 PHPExcel 中?

Susan Sarandon
Susan Sarandon原創
2024-11-24 06:53:19555瀏覽

How Can I Efficiently Load Large Excel Files into PHPExcel Without Running Out of Memory?

PHPExcel 記憶體不足問題

儘管允許大量記憶體分配,但使用 PHPExcel 載入大型 Excel 表可能會導致記憶體耗盡。了解記憶體分配過程對於解決此問題至關重要。

影響記憶體消耗的因素

PHPExcel 的記憶體需求主要取決於載入的工作表中的儲存格數量。每個單元的平均記憶體使用量約為 1k。因此,包含 5M 單元的工作簿將需要大約 5GB 記憶體。

最佳化

為了減少記憶體消耗,可以實作多重最佳化:

  • 限制載入的工作表:僅使用載入特定工作表setLoadSheetsOnly().
  • 讀取過濾器:實作讀取過濾器以僅選擇必要的儲存格。
  • 分塊讀取:載入工作簿迭代一次僅在記憶體中保留一定數量的行。
  • 閱讀僅資料: 使用 setReadDataOnly(true) 僅載入儲存格值,而不進行格式化。
  • 儲存格快取: 以壓縮格式或在 PHP 記憶體之外儲存儲存格,以減少記憶體佔用。

其他提示

中在您的程式碼中, $arrayData 陣列會累積數據,可能會加劇記憶體使用。相反,請考慮利用 PHPExcel 的 toArray() 方法或其新的 rangeToArray() 方法,它可以建立資料的關聯數組,而不需要中間數組。

以上是如何在不耗盡記憶體的情況下有效地將大型 Excel 檔案載入到 PHPExcel 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn