我能够打开并向Excel文件写入,但当我尝试通过传递路径来保存文件时,保存操作会提示保存对话框。我希望它静默地将文件保存在指定的路径上。
代码如下:
excelApp.Save(exportToDirectory);
excelApp.Quit();
其中,exportToDirectory 是:"C:\files\strings.xlsx"。
PS:我已经检查过 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;
只需将 ActiveWorkbook.Saved 属性设置为 true,就可以在没有任何对话框的情况下退出 Quit();
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();
请查看他们的知识库文章之一。
excelApp.ActiveWorkbook.save()
可以保存文件,然后我可以退出而不需要询问。myBook.Saved = true;
myBook.SaveCopyAs(xlsFileName);
myBook.Close(null, null, null);
myExcel.Workbooks.Close();
myExcel.Quit();
myBook.Saved = true;
myBook.SaveCopyAs(xlsFileName);
myBook.Close(null, null, null);
myExcel.Workbooks.Close();
myExcel.Quit();
ExcelApp.Interactive = false
可以抑制任何对话框。
excelApp.ActiveWorkbook.SaveAs(exportDirectory)
public enum XlSaveAsAccessMode { xlNoChange = 1, xlShared = 2, xlExclusive = 3 }
- killercowuk