良い古いOleDBConnectionsとOleDBCommandsを使用してExcelファイルを読んでいます。どのようにしてExcelシートの使用範囲を特定するのですか?私は相互運用性を使用した場合C#とOleDBを使用してExcelを読み込む - 使用範囲を特定するにはどうすればよいですか?
例えば、私はいつもこれを行うことができます -
Excel.Application xlApp = new Excel.Application();
Excel.Workbook xWb;
Excel.Worksheet xWs;
Excel.Range range;
xWb = xlApp.Workbooks.Open(@"D:\Technical\C#\WorkingFolder\HelloWorld.xls", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xWs = (Excel.Worksheet)xWb.Worksheets.get_Item(1);
range = xWs.UsedRange;
は今、私はすべて使用される列のリストを取得します。 OleDBでは、どうすれば入手できますか?今、私が列リストを釘付けにしていたとしても、行がここで終わるのをどうやって知っていますか?
基本的に私の要件はこれです。
Excel(2003)ファイルを受信しようとしています。データには常にヘッダー(列名)が含まれます。これは、A1からデータが常に入力されることを意味するものではありません。J200
また、A5:J204からのものでもあります。
ので、
今string sConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Technical\C#\WorkingFolder\HelloWorld.xls;Extended Properties=""Excel 8.0;HDR=YES;""";
string sCommandString = "SELECT Employee_Id, First_Name FROM [Sheet1$A1:J200]";
OleDbConnection xlConnection = new OleDbConnection(sConnectionString);
xlConnection.Open();
OleDbCommand xlCommand = new OleDbCommand(sCommandString, xlConnection);
OleDbDataAdapter tempDataAdapter = new OleDbDataAdapter();
tempDataAdapter.SelectCommand = xlCommand;
DataTable tempDataTable = new DataTable("Whatever_I_Want");
tempDataAdapter.Fill(tempDataTable);
をOleDbCommandを使用して、ライン
sCommandStringは、A1のハードコードされた値を持っている:J200は、私が受け取るExcelはA5とデータ範囲を持っている場合はどのような:204、どのような私はしますか?
助けがあれば助かります。
こんにちはどのようにこれを解決しましたか? oledbを使用して範囲を取得するためのサンプルコードを投稿できますか? – Govind