実現したいこと
clsosedXmlを使用して新しいエクセルブックを作成し、そのブックを開いて閉じるときに
'xxx.xlsx'の変更内容を保存しますか。
のダイアログが表示されてしまう。
数式を使用した場合にこの現象が起きる。
RecalculateAllFormulas()を呼べばいいのかなと思っていましたが、
違うみたいです。
情報お持ちの方ご協力お願いします。
該当のソースコード
c#
1 protected void Hoge(string path) 2 { 3 using (var wb = new XLWorkbook()) 4 { 5 var ws = wb.Worksheets.Add("testsheet"); 6 ws.Cell(1, 1).Value = 10; 7 ws.Cell(2, 1).Value = 20; 8 ws.Cell(3, 1).FormulaA1 = "A1+A2"; 9 ws.RecalculateAllFormulas(); 10 wb.RecalculateAllFormulas(); 11 wb.SaveAs(path, true, true); 12 } 13 }
補足情報(FW/ツールのバージョンなど)
ClosedXML 0.104.1
提示されたコードを実行してみましたが、ダイアログは出てきません。
ビルドが失敗して前のコンパイル結果で動いているとか、実行されているコードが別物なのでは?
ビルドの成功を再度確認しました。
成果物のエクセルファイルも削除して再度作成しましたが、やっぱりダイアログがでます。
書き方があやふやで申し訳なかったのですが、
SaveAsメソッドでダイアログが出るのではなく、
生成されたエクセルファイルを開いて何もせずに閉じるときに変更しますかのダイアログが出る格好です。
Excel で開いてすぐに閉じたときですよね?手元の環境では出ません。
wb.CalculateMode を Auto や Manual にするとどうでしょうか?
CalculateModeをAutoに設定では状況変わりませんでした。
Manualにするとダイアログ出なくなりました。
あなたの回答
tips
プレビュー