Excelシートに数行を書き込んで、簡単なC#プログラムを使用して保存しようとしています。しかし、毎回「このファイルを保存しますか?」というダイアログボックスが表示されます。はい、いいえ、オプションをキャンセルします。はいを選択して、更新されたデータでファイルを保存できるようにします。C#でExcelワークシートの名前を付けて保存ダイアログボックスの処理方法
string ID = "123456";
Microsoft.Office.Interop.Excel.Application xlApp;
Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
xlApp = new Microsoft.Office.Interop.Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(@"D:\Projects\Data\DataSheet.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
xlWorkSheet =
(Microsoft.Office.Interop.Excel.Worksheet) xlWorkBook.Worksheets["source"];
//putting the value in excel.
xlWorkSheet.Cells[2, 2] = ID;
xlApp.Visible = true;
//xlApp.ActiveWorkbook.save();
xlWorkBook.SaveAs(@"D:\Projects\Data\DataSheet.xlsx", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing,
false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
xlWorkBook.Close(false, Type.Missing, Type.Missing);
xlApp.Workbooks.Close();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkBook);
xlApp.Quit();
GC.Collect();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);
そのは、Excelシートに値を入力するが、それはそれを保存しない:ここでは
はコードです。誰かがこの問題を短くする手助けができますか?よりよいアプローチを提案しますか?
可能な重複[名前を付けて保存コマンドが動作しませんが、SaveCopyAsはありません](https://stackoverflow.com/questions/17450447/saveas-command-does-:C#では、私はこれは次のようになりますと信じて – dovid
絶対に必要な場合を除いて、決して 'GC.Collect()'を呼ぶことはないでしょう。imoを防ぐのが良いでしょう。リソースが必要なときに収集する必要があります – EpicKip
_「保存するが保存するよう依頼する」_に基づいて回答を追加しましたが、それはあなたの問題ではないことに気付きました。 'xlWorkBook.SaveAs(@" D:Projects \ Data \ DataSheet.xlsx ")'は追加引数なしで動作しますか?コードの欲しいところにメッセージがポップアップしていますか? – gms0ulman