我有一張Excel表格。該工作表在第1行中有標題。 標題之一是金額。如何將excel文件中特定標題的所有行與c#相加?
我想讀取該頭文件中的所有行,並將它的總和與獨立於數量或行數永遠不變的行相加,得到float類型的變量。
我正在用c#來做這件事。
我打開工作簿,我得到活動工作表,然後什麼也沒有,我被阻止。
我該如何解決這個問題? Rui Martins
我有一張Excel表格。該工作表在第1行中有標題。 標題之一是金額。如何將excel文件中特定標題的所有行與c#相加?
我想讀取該頭文件中的所有行,並將它的總和與獨立於數量或行數永遠不變的行相加,得到float類型的變量。
我正在用c#來做這件事。
我打開工作簿,我得到活動工作表,然後什麼也沒有,我被阻止。
我該如何解決這個問題? Rui Martins
你可以使用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
Tks。這個很簡單,但我必須使用interop。公司政策... –
奇怪的是,我總是發現禁止Interop的政策,但... – Steve
在這個應用程序的情況下。由於工作簿實際上是開放的,所以我必須使用Interop –
看看這篇文章,你應該可以循環遍歷行並通過完全添加單元格值來獲得總數。
TKS。我會看看它。 –
同樣適用限定被封鎖。 – rerun
我只是坐在那裏看着它,什麼都沒有出來。我被封鎖了。 –
你是如何「獲得積極工作表」?該表是否具有「Columns」或「Rows」之類的內容? –