0

OLEDB コマンド オブジェクトを介して Excel シートの使用範囲を選択する方法はありますか?

400 行の Excel ファイルがあるため、200 行を削除してシートを再度選択しようとすると、200 行ではなく最大 400 行が選択されます。これは、シートを選択するために書いたコードです。

oledbConn = new OleDbConnection(connectionString);
oledbCmd = new OleDbCommand("select * from [Sheet1$]", oledbConn);
oledbConn.Open();
oledbDr = oledbCmd.ExecuteReader();
    while(oledbDr.Read())
    {
}
4

2 に答える 2

2

これは次の 2 つの方法で行うことができます。

初め。

OleDBCommand に単純な SQL 選択を記述します。現時点では、Excel のすべての行を選択しています。ドキュメントから 200 行を削除したという事実は、それらの空の行をまだ選択しているため、おそらく役に立ちません。

サンプル:

select * from [Sheet1$] WHERE ID <= 200

2番。

データ全体をDataTableにロードし、これをプログラムで処理します。

サンプル:

DataTable xlsData = new DataTable();
List<string> result = new List<string>();
string query = string.Format("SELECT * FROM [{0}]", this.SheetName);
OleDbDataAdapter dbAdapter = new OleDbDataAdapter(query, dbConnection);
dbAdapter.Fill(xlsData);
foreach (DataColumn column in xlsData.Columns)
{
  result.Add(column.ColumnName);
}
于 2012-01-19T14:44:12.620 に答える
0

[Sheet1$] から DISTINCT * を選択してみてください

于 2016-06-01T13:10:46.080 に答える