質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
ClosedXML

ClosedXMLは、Excel形式ファイル(.xlsx, .xlsm)の操作や読み書きのための.NETライブラリです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

0回答

149閲覧

closedXmlで新規作成したブックを開くと変更していなくて変更を保存のダイアログが開いてしまう

ysfm3

総合スコア0

ClosedXML

ClosedXMLは、Excel形式ファイル(.xlsx, .xlsm)の操作や読み書きのための.NETライブラリです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2024/10/29 04:13

実現したいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KOZ6.0

2024/10/29 05:43

提示されたコードを実行してみましたが、ダイアログは出てきません。 ビルドが失敗して前のコンパイル結果で動いているとか、実行されているコードが別物なのでは?
ysfm3

2024/10/29 23:52

ビルドの成功を再度確認しました。 成果物のエクセルファイルも削除して再度作成しましたが、やっぱりダイアログがでます。 書き方があやふやで申し訳なかったのですが、 SaveAsメソッドでダイアログが出るのではなく、 生成されたエクセルファイルを開いて何もせずに閉じるときに変更しますかのダイアログが出る格好です。
KOZ6.0

2024/10/30 00:13

Excel で開いてすぐに閉じたときですよね?手元の環境では出ません。 wb.CalculateMode を Auto や Manual にするとどうでしょうか?
ysfm3

2024/10/30 01:29

CalculateModeをAutoに設定では状況変わりませんでした。 Manualにするとダイアログ出なくなりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問