簡體   English   中英

EPPlus Range Formula 計算在較大的文件上需要永遠

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM