0

Excel シートからパラメーターを読み取る必要があるテスト フレームワークを作成しています。私はできるようになりたいです:

  1. シート内のテスト レコードの行数を取得する
  2. 列数を取得する
  3. A23 などの特定のセルを参照し、値を読み書きします。

このコードはインターネットで見つけました。素晴らしいですが、フォーム コンポーネントで動作するようにコーディングされているようです。必ずしもデータグリッドに Excel シートを表示する必要はありません。

これは私が見つけたコードです。問題なく動作しますが、上記の機能を追加する必要があります。ご協力いただきありがとうございます :)

using System.Data;
using System.Data.OleDb;
...
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended Properties=Excel 8.0");
OleDbDataAdapter da = new OleDbDataAdapter("select * from MyObject", con);
DataTable dt = new DataTable();
da.Fill(dt);
4

4 に答える 4

1

行をカウント

sheet.Range["A11"].Formula = “COUNT(A1:A10)”;

カウント列

sheet.Range["A12"].Formula = “COUNT(A1:F1)”;

.NETExcelコンポーネント

于 2012-10-09T08:49:53.563 に答える
0

このコードを使用して特定のセルを参照できます。

Select * from [Sheet1$A1:B10] 

たとえば、上記のセルA1からB10へのコードアクセス

ここを参照してください

于 2012-10-06T07:58:31.677 に答える
0

この方法を使用できます:

private DataTable LoadXLS(string filePath)
{
    DataTable table = new DataTable();
    DataRow row;
    try
    {
        using (OleDbConnection cnLogin = new OleDbConnection())
        {
            cnLogin.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filePath + "';Extended Properties=Excel 8.0;";

                cnLogin.Open();
                string sQuery = "SELECT * FROM  [Sheet1$]";
                table.Columns.Add("Tags", typeof(string));
                table.Columns.Add("ReplaceWords", typeof(string));
                OleDbCommand comDB = new OleDbCommand(sQuery, cnLogin);

                using (OleDbDataReader drJobs = comDB.ExecuteReader(CommandBehavior.Default))
                {
                    while (drJobs.Read())
                    {
                        row = table.NewRow();
                        row["Tags"] = drJobs[0].ToString();
                        row["ReplaceWords"] = drJobs[1].ToString();
                        table.Rows.Add(row);
                    }
                }
            }
            return table;
        }

そして、次のように使用します:

DataTable dtXLS = LoadXLS(path);
//and do what you need

Excelに書き込む必要がある場合は、これをチェックする必要がありますhttp://msdn.microsoft.com/en-us/library/dd264733.aspx

于 2012-10-06T14:37:47.463 に答える