2010-10-18 76 views
3

我到處尋找如何使用C#應用程序內部Excel函數告訴我做到以下幾點:實例化Excel函數

  • 從COM TabAdd以下using語句:使用IExcel = Microsoft.Office。 Interop.Excel
  • 然後聲明並初始化IWorkSheetFunction對象IExcel.IWorksheetFunction iwf = new IExcel.IWorksheetFunction();
  • 現在你可以使用函數,如int result = iwf.Math.Sum(1,2);

im問題是當智能感知檢測到IExcel時,它不顯示IWorksheetFunction。但是它顯示了WorksheetFunction。無論哪種方式,它不讓我實例化它作爲一個對象。我得到的錯誤:不能創建一個抽象類或接口的實例'Microsoft.Office.Interop.Excel.WorksheetFunction'

任何想法?

+1

哦,我不知道這一點。我會回去趕上它 – Sinaesthetic 2010-10-18 00:41:29

回答

3

嘗試:

Microsoft.Office.Interop.Excel.Application xl = new Microsoft.Office.Interop.Excel.Application(); 

Microsoft.Office.Interop.Excel.WorksheetFunction wsf = xl.WorksheetFunction; 
int result = wsf.Percentile(obj, 0.75); 

基本上它歸結爲,而不是:

IExcel.IWorksheetFunction iwf = 
     new IExcel.IWorksheetFunction(); // You can't instantiate an interface 

使用Excel.ApplicationWorksheetFunction屬性:

IExcel.IWorksheetFunction iwf = xl.WorksheetFunction; 
+0

它做到了!奇怪的。謝謝 :) – Sinaesthetic 2010-10-18 00:57:27

0

其關閉應用程序對象的功能。

using Microsoft.Office.Interop.Excel; 
static void Main(string[] args) 
{ 

    Application a = new Application(); 
    double x = a.WorksheetFunction.Sum(1, 2); 
    Console.WriteLine("Sum = {0}", x); 

}