[英]EPPlus Range Formula calculation takes forever on larger files
我正在處理一個包含大約 87,000 行的工作表,我正在使用一個公式來添加僅屬於某個發票的采購金額。
這是我的公式:
workSheet.Cells[2, 17, workSheet.Dimension.End.Row, 17].Formula = "SUMIF(A:A,A"+2+",N:N)";
然后我運行一個 epplus 范圍計算,這樣我就可以以編程方式處理這些值:
workSheet.Cells[2, 17, workSheet.Dimension.End.Row, 17].Calculate();
但是,this.Calculate() 需要很長時間才能運行。 它適用於較小的文件。 但是一旦數據變得太大,它就會極大地增加時間復雜度。
我可以用公式或 EPPlus 做些什么來快速執行 this.Calculate() 嗎? 謝謝!
在評論中回答:
我發現特定的 Excel 公式是 O(n^2) 時間復雜度,因為當在 EPPlus 中調用
.calculate()
時,它會遞歸地再次檢查它通過的每一行的所有行,所以我只需要制作自己的公式在 C# 中,基本上做了 Excel 公式應該做的事情,但這次是 O(n) 時間復雜度,它極大地加快了速度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.