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

时间:2009-04-24 12:44:12

标签: c# interop excel-interop

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

代码如下:

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

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

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

由于

7 个答案:

答案 0 :(得分:15)

您需要使用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);

答案 1 :(得分:15)

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

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

答案 2 :(得分:2)

嗯,这就是微软的做法:

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

查看他们的KB article之一。

答案 3 :(得分:2)

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

答案 4 :(得分:1)

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

excelApp.ActiveWorkbook.SaveAs(exportDirectory)

答案 5 :(得分:1)

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

答案 6 :(得分:1)

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