C# and Excel Interop issue, Saving the excel file not smooth
-
16-09-2019 - |
Question
I could Open and Write to the excel file, but when I try to save the file by passing a path to it, the save operation prompts with the Save dialog. I was expecting it to quitely Save the file at the specified path
The code is as below:
excelApp.Save(exportToDirectory);
excelApp.Quit();
where, exportToDirectory is: "C:\files\strings.xlsx".
PS: I have already checked with the excel version and similar issue.
Thanks
Solution
You need to use Workbook.SaveAs
instead of 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);
OTHER TIPS
Setting the following properties might also help:
excelApp.DisplayAlerts = false;
excelApp.ScreenUpdating = false;
excelApp.Visible = false;
excelApp.UserControl = false;
excelApp.Interactive = false;
Well, here's how Microsoft does it:
// 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();
See one of their KB articles.
just set the ActiveWorkbook.Saved property to true and you can Quit() without any Dialog box;
ExcelApp.Interactive = false
suppresses any dialog box.
excelApp.ActiveWorkbook.SaveAs(exportDirectory)
I found excelApp.ActiveWorkbook.save()
which can save the file, then I can quit without for asking.
myBook.Saved = true;
myBook.SaveCopyAs(xlsFileName);
myBook.Close(null, null, null);
myExcel.Workbooks.Close();
myExcel.Quit();