2009-04-28 6 views
0

C#を使用して.NET Framework 1.1でExcelファイルを読み込み中です。私はこの複数の種類を持つ列のExcel読み取りに関する問題

1003 1004 1005 TEST_1 TEST_2

そのは私にエラーを与えていないような井戸テキスト何かとして番号を含む列を持っているとき、私は、Excelファイルの読み込みに問題を取得していますが、私は最初の3にnull値を取得しています行。 これは、私がExcelファイルを読むために使用しているコードです。

string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 
                path + 
                ";Extended Properties=Excel 8.0;"; 

      System.Data.OleDb.OleDbConnection objConn = new System.Data.OleDb.OleDbConnection(strcon); 

      try 
      { 
        objConn.Open();         
        System.Data.OleDb.OleDbDataAdapter objadp = new System.Data.OleDb.OleDbDataAdapter("Select * from [" + sheetName + "$" + "]",objConn); 
        DataSet ds = new DataSet();        
        objadp.Fill (ds); 
        return ds;        
      } 
      catch(Exception ex) 
      { 
        throw ex; 
      } 
      finally 
      { 
        objConn.Close(); 
        objConn.Dispose();        
      } 

誰でも問題が発生する可能性がありますか?ありがとう。

答えて

1

マシンに.NET 1.1がインストールされていませんが、.NET 2.0がインストールされた状態で問題を再現できました。 接続文字列を少し修正して、テキスト値を読み取ることができました。マイクロソフトフォーラムから問題を引用

string strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + 
              @"C:\Documents and Settings\johnsond\Desktop\Book1.xls" + 
              @";Extended Properties=" + Convert.ToChar(34).ToString() + @"Excel 8.0;Imex=1;HDR=Yes;" 
              + Convert.ToChar(34).ToString(); 

が原因以下になるようだ:

Excelが実際のデータベースと列の固定のデータ型を持っていないではありませんので、あなたが持っている問題は、かなり一般的です。 Jet OLEDBはExcelと連携して動作するようには設計されておらず、これらの制限があります。

わかりません:-)さらに、このようなデータをExcelに書きたい場合は、もっと複雑になります。 さらに読書:MSDN Forum Link

代わりにあなたはSOの前にdisucussedとしてのシートを操作するため「Excel.Applicationオブジェクト」を使用することができます。

チェックこのあなたはintrestedている場合: Read Excel using Excel.Application

乾杯!

+0

はい私は同じ解決策を見つけました。私はMSDNで述べたように私の接続文字列を変更しました。お返事をありがとうございます。 –

関連する問題