如何处理C#中excel工作表的另存为对话框

我想在Excel表格中写几行,然后使用简单的C#程序保存。 但是每当它显示一个对话框“你想保存这个文件吗?” 是,不,取消选项。 我想selectyes,以便可以使用更新的数据保存文件。

这里是代码:

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表格中input值,但不保存。 有人可以帮助缩短这个问题吗? 或者build议更好的方法?

尝试手动将Saved属性设置为true

 xlWorkBook.SaveAs(...); xlWorkBook.Saved = true; xlApp.Workbooks.Close() //not sure if required before: xlWorkBook.Close() 

编辑

你可以提供参数给Close()方法 。 在C#中,我相信这看起来像这样:

 xlWorkBook.SaveAs(...); xlWorkBook.Saved = true; xlWorkBook.Close(false); //new line xlApp.Workbooks.Close(); OR xlApp.Workbooks.Close(false);