2012-08-28 66 views
1

我有一張Excel表格。該工作表在第1行中有標題。 標題之一是金額。如何將excel文件中特定標題的所有行與c#相加?

我想讀取該頭文件中的所有行,並將它的總和與獨立於數量或行數永遠不變的行相加,得到float類型的變量。

我正在用c#來做這件事。

我打開工作簿,我得到活動工作表,然後什麼也沒有,我被阻止。

我該如何解決這個問題? Rui Martins

+2

同樣適用限定被封鎖。 – rerun

+0

我只是坐在那裏看着它,什麼都沒有出來。我被封鎖了。 –

+0

你是如何「獲得積極工作表」?該表是否具有「Columns」或「Rows」之類的內容? –

回答

2

你可以使用OLEDB,而不是Excel.Interop

string con = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\test.xls;" + 
       "Extended Properties='Excel 8.0;HDR=Yes;'"; 
using(OleDbConnection c = new OleDbConnection(con)) 
{ 
    c.Open(); 
    string selectString = "SELECT SUM(Amount) FROM [Sheet1$]"; 
    using(OleDbCommand cmd1 = new OleDbCommand(selectString)) 
    { 
     cmd1.Connection = c; 
var result = cmd1.ExecuteScalar(); 
     Console.WriteLine(result); 
    } 
} 

本例使用舊Microsoft.Jet.OleDB.4.0提供商,但隨着新Microsoft.ACE.OLEDB.12.0

+0

Tks。這個很簡單,但我必須使用interop。公司政策... –

+0

奇怪的是,我總是發現禁止Interop的政策,但... – Steve

+0

在這個應用程序的情況下。由於工作簿實際上是開放的,所以我必須使用Interop –

相關問題