(問題点1)
OLEDBクエリ内の2つの問題に直面しています
からスタートdoesnot場合OLEDBクエリを使用してExcelから列名を取得する方法ユーザーがアップロードした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"];
このコマンドを使用します。しかし、列名の行が最初の行から始まらない場合、列名は "F1、F2、....."となります。これをどうすれば解決できますか?どの列から列名を取得するかを問い合わせる方法はありますか?
(課題2)私はExcelから特定の範囲のデータを選択する必要があり、列ヘッダーと同様
。私は、このようなクエリを使用
Select RepName, Country from [Sheet1$3:12].
しかし、それはこのような例外、メッセージ投げているようなので、12 を行ごとに3からデータを取ると言う「は、一つ以上の必要なパラメータに指定された値なしを。」
質問には何か構文エラーがありますか?
もしそうなら、どのようにしてクエリを修正するか教えてください。 1は、OLEDBを介して解決できない
問題2は問題1の結果かもしれないと思います。残念ながら、スプレッドシートと会話するこの方法は、列名を作成するデータ範囲であると思うものの最初の行のみを使用します。ユーザーがアップロードしたスプレッドシートの形式を制御している場合は、列ヘッダーを1行に移動します。列名を 'F1'、' Repname'の代わりに 'F2'、' Country ' – Pynner
こんにちはPynner、問題2は問題1の結果ではありません。私はselect文で範囲を与えることで問題2を解決しましたが、問題を解決できません1 – user1294617