OLEDB クエリで 2 つの問題に直面しています
(問題1)
ユーザーがアップロードした Excel シートの列名を取得する必要があります。Excelの接続文字列は
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+fileNameAndPath+";
Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
次に、このコマンドを使用します
connection.Open();
DataTable schemaTable = connection.GetSchema("Columns");
Taking column name from each datarow like this
string name = (string)row["COLUMN_NAME"];
列名がExcelの最初の行にある場合、正常に機能しています。ただし、列名の行が最初の行から始まらない場合、列名は「F1、F2、.....」になります。どうすればこれを解決できますか? どの行から列名を取得するかをクエリで伝える方法はありますか?
(問題2)
列ヘッダーと同様に、Excel の特定の範囲からデータを選択する必要があります。たとえば、行 3 から行 12 までのデータを取得します。したがって、次のようなクエリを使用しました。
Select RepName, Country from [Sheet1$3:12].
ただし、「1 つ以上の必須パラメーターに値が指定されていません」というような例外メッセージがスローされます。
クエリに構文エラーはありますか?
もしそうなら、誰かがクエリを修正する方法を教えてもらえますか?