2009-07-29 12 views
4

ExcelPackageを使用すると大きな問題が発生します。値を削除しても数式が更新されないことがあるためです。Excelの式を自動的にリフレッシュする方法は?

ExcelInteropを使用してxlsxをxlsとして保存しようとしましたが、これで問題が解決するとは思っていましたが、そうではありませんでした。

解決方法は、CTRL + ALT + F9を押すことです。ユーザーは毎回それをするのが好きではないので、私はそれをプログラム的にやりたい。すべてのxlsx式が確実に更新されるようにする効果的な方法を知っていますか?私は、これは前に私のために働くことを発見したマクロ(またはCOMオブジェクトの上)

答えて

7

for (int iWorksheet = 1; iWorksheet <= workbook.Worksheets.Count; iWorksheet++) 
       { 
        Worksheet ws = ((Worksheet)workbook.Worksheets[iWorksheet]); 
        ws.UsedRange.Formula = ws.UsedRange.Formula; 
        ws.Calculate(); 
       } 
+0

おかげで、私はそれはまた、同様に働くだろうと思います;) –

+1

おかげで、このも[解決](http://stackoverflow.com/a/9659653/234309)私のために割り当てるの問題マルチセル範囲を数式文字列の配列に変換します。そこではCalculate()は必要ありませんでした。 –

1

は、開いて計算し、XLSを保存することができますxlsxワークブックはExcelなしで動作し、.NETアプリケーション(C#で書かれている)が完全な.NETコードであるため、.NETアプリケーションから作業しやすくなります。

hereの例を見ることができますし、試してみたい場合は無料試用版hereをダウンロードしてください。

免責事項:私はあなたが常にApplication.Calculation = xlAutomaticを設定することができますスプレッドシートギア社

1

を所有しています。そうすれば、計算を実行するために独自のコードに頼るのではなく、必要なときにのみ呼び出されます。

この設定は、Excelインスタンス全体に影響します。したがって、クライアントが他のワークブックをこのように動作させたくない場合は、別のExcelインスタンスで開く必要があります。

関連する問題