質問

との付き合いのなかでのエクセルファイルです。

Column 1    Column 2    Column 3  
 data1        data2    
 data1        data2  
 data1        data2  
 data1        data2  
 data1        data2       data3  

の全3列が空のを除きます。私はアクセスするExcelファイルOleDbDataAdapterを返しDataTable:こちらのコードです。

query = "SELECT * FROM [" + query + "]";
objDT = new DataTable();
objCmdSQL = this.GetCommand();
objCmdSQL.CommandText = query;
objSQLDad = new OleDbDataAdapter(objCmdSQL);
objSQLDad.Fill(objDT);
return objDT;

その一つは、このシナリオでは自分のコードを返しまDataTableだけで列1列2.
私の推測ではジェットエンジンという推測の列タイプの種類の細胞の各欄最初の値がnullの場合、列は無視されます。
たくのゼロは、このコードが実際に復帰すべての列;これは明らかに少なくとも好ましいので解決しています過程では多数の小規模ファイルです。
反転反転時に選択範囲から、"A1:C5"を"C5:A1")になります。もやってみたいものがあります。
いたカップルでの議論のタイプミスマッチ(varchar細胞int columnsおよびその逆)が実際にいかに関連するあらゆるもののことです。
感謝。

編集

変な挙動です。しています仕事は主にExcel2003年.xlsファイルではこの回答が一番不安になっていました試験は私のコードに対Excel2007年.xslxファイルです。接続文字列は次の通りです:

string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + _fileName.Trim() + @";Extended Properties=""Excel 12.0;HDR=No;IMEX=1;""";

を取得します"外部テーブルが予想フォーマット"を除るように標準の例外がある場合はバージョンミスマッチエース/ジェットのファイルが開きます。

の文字列

Provider=Microsoft.ACE.OLEDB.12.0 

とは私が使っている最新バージョンのOLEDBした迅速peek周辺のこの版はどこででも使用する必要がございますので接続す。xlsxファイルです。
していただけ、バニラのプロバイダ(Excel12.0なIMEXもHDR)も同じ。
います。純2.0.50727SP2かる時間です。

役に立ちましたか?

解決

を再現したりもした状況の下、3列ます。それは、最初の二つのカラムの全データの第三のを含むnullの場合は、最後まで行ったデータです。

string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=No;IMEX=1"";";
DataTable dt = new DataTable();
OleDbConnection conn = new OleDbConnection(connString);
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", conn);

adapter.Fill(dt);

注を使用した Access Database Engine(ACE) プロバイダは、成功したの Joint Engine Technology(JET) プロバイダは、私の成果を挙動の違いない。もちろん、利点を向上させる提供していますのであることを ACE プロバイダとしてると思いMicrosoftいます。また、接続の Extended Properties:

"HDR=Yes;"の 列を含むcolumnnamesいます。"HDR=No;"を示す逆行するものとなっている。

"IMEX=1;"によって、ドライバを常に read"混合"(数字、日付、 文字列など)のデータ列のテキストで与えます。このオプションの影響 excelシートの書き込みアクセスします。

う場合に役立っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top