2009-04-01 6 views
0

私が取り組んでいるプロジェクトでは、Excelシートの6つの値を更新するためにC#アプリケーションの値が必要です。このエクセルシートは、同じExcelファイル内のいくつかのVLOOKUP式とワークシートによって駆動され、指定された範囲のアイテムと価格を入力します。Excelから値を返さないデータ型(数式からの値)

範囲内の2つの列の名前は「Item」&「Price」です。

「アイテム」は、スプレッドシート上の数式から連結されたアイテムの列であり、これらはDataTableで正常に表示されます。ただし、 'Price'列(VLOOKUP式の数値のすべて)はDataTableに表示されません。

C#でDataTableを読み込むと、2つの列の型のstringとdoubleが正常であることがわかります。数式の値の1つをハードコードされた値で置き換えた場合、DataTableは正常です。したがって、DataTable自体が期待どおりに動作していると思います。

値が渡された後にExcelファイルを開くと、入力値が正しく入力され、数式が正しく計算されていることがわかります。

私は、問題を引き起こしていると考えられるのは、値が渡された後で数式が再計算されないということだけです。

C#でExcelファイルを開き、すべての式を再計算する方法はありますか?

+0

Excelシートを開くためにどのドライバを使用していますか? OLEDBまたはODBC? – jdecuyper

+0

申し訳ありませんが、OLEDBは、更新クエリ(シートに値を追加する)と、DataTableを移入する選択クエリ – lazygamer

答えて

1

気にしないで、

は、相互運用機能を持つExcelファイルが数式が再計算することができます開いて、Excelの相互運用性とOLEDBの更新を置き換え。