10

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

7 Answers 7

16

Setting the following properties might also help:

excelApp.DisplayAlerts = false;
excelApp.ScreenUpdating = false;
excelApp.Visible = false;
excelApp.UserControl = false;
excelApp.Interactive = false;
Sign up to request clarification or add additional context in comments.

1 Comment

I try a lot of solution but this was the only one that works like it should! Very useful! Tks!!
15

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);

2 Comments

Any idea what the numerical value for Excel.XlSaveAsAccessMode.xlExclusive is? I need to pass this to this function in a windows script file.
@MrVimes Totally late to the party for you, however here they are for future reference: public enum XlSaveAsAccessMode { xlNoChange = 1, xlShared = 2, xlExclusive = 3 }
3

just set the ActiveWorkbook.Saved property to true and you can Quit() without any Dialog box;

Comments

2

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.

Comments

1

ExcelApp.Interactive = false suppresses any dialog box.

excelApp.ActiveWorkbook.SaveAs(exportDirectory)

Comments

1

I found excelApp.ActiveWorkbook.save() which can save the file, then I can quit without for asking.

Comments

1

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

1 Comment

This worked best for me and not the highest rated answers. What I liked about this solution is that it didn't affect other Excel files opened by user.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.