2009-04-08 5 views
3

Excelをインストールせずに、Excelのファイル(.xls)からコンピュータのの情報をc#に抽出することはできますか?私は次のコードを持っているexcelをインストールしていないコンピュータ上のExcelファイルからc#に情報を抽出することは可能ですか?

 OleDbConnection objConn = new 
      OleDbConnection(CONNECTION_STRING.Replace("<FILENAME>", fileName)); 

      try 
      { 
       objConnection.Open(); 
      } 
      catch (Exception) 
      {} 

を私はExcelがインストールされていないコンピュータ上で実行するとOleDbConnectionオブジェクトを開こうとするとそれは(「テーブル0を見つけることができません」)IndexOutOfRangeExceptionをスローします。 Excelでコンピュータ上で実行される同じコードがうまく動作します。したがって、私は非常に強く、その犯人であることの欠如を疑う。

これが問題ですか? これは、どうすればファイルからデータを抽出できますか?

+0

現時点では確認できませんが、表はワークシートの表として明示的に定義されていますか? –

+0

どのような情報を抽出しますか?ファイルは.xlsまたは.xlsx形式ですか? –

答えて

5

オープンソースNExcelをご覧ください。最後の約2年前に更新されたため、新しいExcel 2007の.xlsx形式はサポートされていませんが、Excel 07-Excel 2003が表示されます。

1

可能です。形式が.XLSの場合は、Microsoft Jet OLEDB 4.0を使用してください(32ビットシステムで実行されている限り問題なく動作します - 64ビットシステムではいくつかのヒックアップがあります)。少し。あなたはおそらく正しい道にいるでしょう。

チェックこのリンクを出し、それはあなたが知っておくべきことのうちの少なくともいくつか説明する必要があります。Excelのない二つの主な方法があります

Reading and Writing Excel Spreadsheets Using ADO.NET C# DbProviderFactory

4

を開くために、Jetデータベースドライバを使用し

をインストールファイル。これにより、各シートを表として扱う行のセル値にアクセスできます。メタ情報(フォーマット、コメントなど)にアクセスすることはできません。

SpreadsheetGear.NETを使用すると、Excelやその他の依存関係がないExcelバイナリファイルを開いたり、作成したり、操作したり、保存したりすることができます。 SpreadSheetGearは評価のためにダウンロードすることはできますが、ライセンスを取得するには費用がかかります。

関連する問題