2017-02-14 14 views
0

この接続文字列を使用してExcel(xls)ファイルからデータを読み込もうとしていますが、特定の列にデータがありません。OleDb Excelデータが混在していてもデータが見つかりません

接続文字列は以下のとおりです。

 props["Provider"] = "Microsoft.ACE.OLEDB.12.0;"; 
     props["Extended Properties"] = "\"Excel 12.0;HDR=YES;IMEX=1;ImportMixedTypes=Text\""; 
     props["Data Source"] = path; 

私のExcelデータのは、そのようなもので、欠落したデータのは、理由は2行目の日付値の列に「G」の下にある..

enter image description here

私はOleDB & mixed Excel datatypes : missing dataの下にすべてを試みたが、働いていません。

Thx!

答えて

0

ACE.OLEDBドライバは、レジストリ設定を使用して各列のデータ型を決定します。デフォルトでは、列の型を調べて推測する行の数はに設定されています。

日付の値はこのセルの最初のブロックに正確に収まります。したがって、ほとんどの場合、ACEはG列の残りの行を日付として読み取ろうとします。ここで

はあなたが何ができるかです:

  1. (おそらくあなたの要件がそれを許可していません)G列で日付値を削除します。
  2. Excelは、自動フォーマットを適用せずにテキストとして07.11.2016日付値を処理します。これを達成するには、同じセル内の一重引用符文字'を使用して日付の値を前に付けるか、手動で日付のセルデータ型をText経由でCellプロパティに設定します。それからもう一度読んでみてください。

HTH

+0

第二のアドバイスは私の問題を解決しますが、私は、このセルに単一引用符を追加するようにユーザーに要求することはできません..私は技術的な解決策(コードまたはコンフィギュレーション)が必要です。 – bakin

+0

@bakinデータを入力する空の.xlsxテンプレートを制御できるのですか?はいの場合は、G列のすべての最初のセルをテキストとしてプレフォーマットすることができます。次に、セルの書式を右クリックして、NumberタブでTextを選択します。その後、ユーザーがそこに日付を入力すると、その日付をテキストとして保存する必要があります。このシナリオを使用してur xlsを読んでみてください。 – andrews

関連する問題