web-dev-qa-db-ja.com

C#からExcel / xlsmブックをカスタム関数で保存せずに閉じる方法

Interop.Excelを使用してC#WindowsFormsアプリケーションから開いている、時間に依存しないカスタムのセル関数を含むExcelブックがあります。 4つの値を読み取り、明示的な変更/計算を実行せずに、C#から閉じます。

(保存せずに)直接閉じようとすると、保存プロンプトが表示されます。これは、実際には数値的または公式的に何も変更されていないにもかかわらず、Excelが開いているときの自動再計算を変更の作成として解釈しているためだと思われます。また、Excel.Application.Calculation = Excel.XlCalculation.xlCalculationManual。保存プロンプトが表示され、保存せずに閉じるのを防ぐにはどうすればよいですか?

29
Jack Huang

Excelオブジェクトを使用する場合は、次のようにブックを閉じてください。

Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
object misValue = System.Reflection.Missing.Value;

xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Add("Yourworkbook");

xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

....do your stuff

xlWorkBook.Close(false, misValue, misValue);

xlApp.Quit();

Closeメソッドのfalseは、変更を保存しないことを示します。

53
Motes

最近、私はExcelの自動化に取り組んでいましたが、このリンクは完璧なソリューションであることがわかりました Kill Process Excel C#

1
Rajnish Patel