C#和Excel Interop问题,保存excel文件不顺畅

我可以打开和写入excel文件,但是当我尝试通过传递路径来保存文件时,保存操作会提示“保存”对话框。 我希望它能够在指定的路径上保存文件

代码如下:

excelApp.Save(exportToDirectory); excelApp.Quit(); 

其中, exportToDirectory是:“C:\ files \ strings.xlsx”。

PS:我已经检查了excel版本和类似的问题。

谢谢

您需要使用Workbook.SaveAs而不是Application.Save

 Excel.Application app = new Excel.Application(); Excel.Workbook wb = app.Workbooks.Add(missing); ... wb.SaveAs(@"C:\temp\test.xlsx", missing, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlExclusive, missing, missing, missing, missing, missing); 

设置以下属性也可能有所帮助:

 excelApp.DisplayAlerts = false; excelApp.ScreenUpdating = false; excelApp.Visible = false; excelApp.UserControl = false; excelApp.Interactive = false; 

好吧,这就是微软的做法:

 // Save the Workbook and quit Excel. m_objBook.SaveAs(m_strSampleFolder + "Book1.xls", m_objOpt, m_objOpt, m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange, m_objOpt, m_objOpt, m_objOpt, m_objOpt); m_objBook.Close(false, m_objOpt, m_objOpt); m_objExcel.Quit(); 

查看他们的知识库文章之一 。

只需将ActiveWorkbook.Saved 属性设置为true ,就可以在没有任何对话框的情况下退出();

ExcelApp.Interactive = false禁止任何对话框。

excelApp.ActiveWorkbook.SaveAs(exportDirectory)

我发现excelApp.ActiveWorkbook.save()可以保存文件,然后我可以退出而不用询问。

myBook.Saved = true;
myBook.SaveCopyAs(xlsFileName);
myBook.Close(null, null, null);
myExcel.Workbooks.Close();
myExcel.Quit();