1

1シートのExcelテーブルがあります。そのシートには、行 1 にヘッダーがあります。ヘッダーの 1 つは Amount です。

そのヘッダーからすべての行を読み取り、同じになることのない数または行とは関係なく、その合計を float 型の変数に取得したいと考えています。

私はこれをc#でやっています。

ワークブックを開くと、アクティブ シートが表示されますが、何もブロックされません。

どうすればいいですか?ルイ・マルティンス

4

2 に答える 2

2

Excel.Interopの代わりにOleDBを使用できます

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

于 2012-08-28T15:07:59.783 に答える
0

この記事を見てください。行をループして、セルの値をすべて追加することで合計を取得できるはずです。

Excel セルの値を取得する方法に関する MSDN の記事。

于 2012-08-28T15:07:01.997 に答える