Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c#对excel文件中特定标题的所有行求和?_C#_Excel - Fatal编程技术网

如何使用c#对excel文件中特定标题的所有行求和?

如何使用c#对excel文件中特定标题的所有行求和?,c#,excel,C#,Excel,我有一张excel表格和一张表格。该工作表第1行有标题。 其中一个标题是Amount 我希望读取该标题中的所有行,并将其总和独立于一个或多个行(这些行的数目永远不相同)放入float类型的变量中 我在用c#做这件事 我打开工作簿,得到活动工作表,然后什么都没有,我被阻止了 我该怎么办? Rui Martins看看这篇文章,您应该能够循环遍历行,并通过将单元格值相加得到总数 您可以使用OleDB而不是Excel.Interop string con = @"Provider=Microsoft.J

我有一张excel表格和一张表格。该工作表第1行有标题。 其中一个标题是Amount

我希望读取该标题中的所有行,并将其总和独立于一个或多个行(这些行的数目永远不相同)放入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

相同,我只是坐在那里看它,什么也看不出来。我被阻止了。你是如何“获取活动表”的?对于本应用程序,该表是否有类似于
。由于工作簿实际上是打开的,我必须使用InteropDon-know,我已经尝试使用工作簿打开和OleDb works,可能有一些选项可以防止共享打开的工作簿。还有一件事。我不知道文件在哪里。是应用程序的用户打开了它。