2011-08-02 18 views
1

ExcelファイルからDataTableにデータを取得しようとしています。
ここに私のコード・スニペットです:これでexcelをSystem.DataTableにエクスポートする際に不明な問題があります。

FilePath = WebConfig.SavePath + "Book2.xls"; 

      // Create the connection object 
      OleDbConnection oledbConn = new OleDbConnection(WebConfig.ExcelConnection(FilePath)); 
      // Open connection 
      oledbConn.Open(); 

      // Create OleDbCommand object and select data from worksheet Sheet1 //WebConfig.SheetNameFirstExcel 
      OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + "Sheet1" + "$]", oledbConn); 

      // Create new OleDbDataAdapter 
      OleDbDataAdapter oleda = new OleDbDataAdapter(); 

      oleda.SelectCommand = cmd; 

      // Create a DataSet which will hold the data extracted from the worksheet. 
      DataTable dt = new DataTable(); 

      // Fill the DataSet from the data extracted from the worksheet. 
      oleda.Fill(dt); 


問題は、他のいくつかのではありませんが、いくつかのセルのデータをデータ・テーブルにエクスポートされた、ということです。エクセルの
フォーマットのようなものです:

第二いくつかのテキスト
3行目
空白の第4回目以降の表
列10の行を見出し1行目。あなたは、私は単に「できる標準OLEDBドライバを疑う持っているすべての問題を考えるとasp.netで

何上記のコードに欠けている、またはそのようなExcelを抽出するための任意の提案(の.xlsx)DataTableのために3.5

+0

あなたのDataTableまたはDBレコードを作成/ 1941083/problems-reading-in-excel-file-in-c –

+0

@Fadrian:これは私がconfigで使用しているものです:Provider = Microsoft.Jet.OLEDB.4.0;データソース= {0};拡張プロパティ= Excel 8.0およびこのProvider = Microsoft.ACE.OLEDB.12.0;データソース= {0};拡張プロパティ= Excel 12.0 "この問題の理由はわかったでしょうか。 – Pratik

+0

問題はhttp://と似ていますprocessinginfinity.com/mystery-セルの値の欠落しかし、まだ私は適切な解決策を見つけることができません – Pratik

答えて

1

テーブルデータの前にテキストの行があるため、Excelファイルを正しく読み込みません。

どう動く程度離れて、ちょうどこの http://stackoverflow.com/questionsの私の応答を参照してくださいXLSXファイルを読み込むため、このライブラリhttp://epplus.codeplex.com/を使用して手動でコーディングし

+0

おかげでファドリアン、私もhttp://code.google.com/p/excellibrary/を使用していますしかし、これはメモリ例外の私を与えるExcelをワークブックにインポート – Pratik

+0

ファイルに読み込み問題を引き起こす面白い文字が含まれている可能性があります。コピーして新しいファイルに値として貼り付けてもう一度試してください –

+0

もう一度お悔やみします。まず、EPPlusが私のために働いてくれてありがとう!唯一のことは、MS Office Excel 2003をサポートしていないということです。 – Pratik

関連する問題