這篇文章要跟大家介紹的內容是關於如何用phpspreadsheet來切割excel大檔案(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
利用phpspreadsheet可以輕鬆的解析excel文件,但是phpspreadsheet的記憶體消耗也是比較大的,我試過解析將近5M的純文字excel記憶體使用量就會超過php預設的最大記憶體128M。
當然這可以用調節記憶體大小的方法來解決,但是在並發量大的時候就比較危險了。所以今天介紹下第二種方法,利用phpspreadsheet對excel檔案進行切割,這是個拿時間換空間的方法所以一般對時效性要求低的需求可以使用。
先放一個phpspreadsheet官網提供的一個功能readCell,我們就可以利用這個功能來進行切割。
首先對excel檔案進行預讀,主要是取得所有的工作表以及工作表下面的資料行數,這個階段readCell方法一直回傳的都是false,我們只需要記錄readCell進來的工作表及數據行數。
然後就是對獲取到的記錄進行分析,確定每部分數據需要裝多少行原始excel的數據,需要注意的是為了避免內容混淆,不要講兩個工作表的內容切在一起。
最後就是循環分析的數據和再次利用readCell取得每部分數據,注意每次讀取檔案後都要利用disconnectWorksheets方法清理phpspreadsheet的記憶體。
經過我自己的測試發現,利用該方法解析5M的excel文件,平均只需要21M的記憶體就可以搞定!
https://github.com/wangyelou/Tools/tree/master/CutExcel
#相關文章推薦:
以上是如何用phpspreadsheet來切割excel大檔案(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!