我有一個方法CalculateLinearRegression()
,它調用Excel.Application.WorksheetFunction
類的LinEst
函數。每調用一次CalculateLinearRegression()
稱爲LinEst
稱爲約3,500次。我將WorksheetFunction類注入到我的方法中,所以我知道只有一個類的實例被創建。緩慢運行的C#調用Excel函數
CalculateLinearRegression()
的每次調用需要大約10分鐘,我確信它是LinEst
功能減慢寄託都向下(脫調用LinEst
和硬編碼的結果意味着在幾秒鐘運行的方法)。我很欣賞LinEst
正在做一些公平的計算,但我懷疑它造成了這麼大的延遲,因此我認爲這可能是對Excel函數的調用會增加延遲。有沒有人知道要麼加快速度,要麼C#直接替換LinEst
函數?
你有沒有簡介它?它*可能是互操作性的阻礙,但是由於該方法[相當有據可查](http://msdn.microsoft.com/zh-cn/library/microsoft.office.interop.excel.worksheetfunction.linest .aspx)你看過自己重新實現嗎? –
你可以調用宏/使用定義的功能,而不是多次調用。 – weismat
另請參閱:http://stackoverflow.com/q/7792088/50447 –