C # и Excel Interop проблема, сохранение файла Excel не гладко - PullRequest
10 голосов
/ 24 апреля 2009

Я могу открыть и записать в файл Excel, но когда я пытаюсь сохранить файл, указав путь к нему, операция сохранения вызывает диалоговое окно Сохранить. Я ожидал, что это вполне сохранить файл по указанному пути

Код следующий:

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

, где exportToDirectory : «C: \ files \ strings.xlsx».

PS: я уже проверил версию Excel и аналогичные проблемы.

Спасибо

Ответы [ 7 ]

15 голосов
/ 24 апреля 2009

Установка следующих свойств также может помочь:

excelApp.DisplayAlerts = false;
excelApp.ScreenUpdating = false;
excelApp.Visible = false;
excelApp.UserControl = false;
excelApp.Interactive = false;
15 голосов
/ 24 апреля 2009

Вам нужно использовать 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);
2 голосов
/ 06 марта 2011

просто установите ActiveWorkbook.Saved на true , и вы можете выйти () без какого-либо диалогового окна;

2 голосов
/ 24 апреля 2009

Ну, вот как Microsoft это делает:

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

См. Одну из КБ статей с.

1 голос
/ 23 августа 2013

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

1 голос
/ 15 февраля 2011

Я нашел excelApp.ActiveWorkbook.save(), который может сохранить файл, затем я могу выйти без запроса.

1 голос
/ 24 апреля 2009

ExcelApp.Interactive = false подавляет любое диалоговое окно.

excelApp.ActiveWorkbook.SaveAs(exportDirectory)

...