Подтвердить что ты не робот

Как сохранить/перезаписать существующий файл Excel с помощью Excel Interop - С#

Есть ли способ сохранить изменения в электронной таблице excel через interc excel (в этом случае я добавляю рабочий лист к нему), не запрашивая у пользователя, если они захотят перезаписать существующий файл с изменениями. Я не хочу, чтобы пользователь даже видел, что электронная таблица открыта в моем приложении, поэтому появление окна сообщения, спрашивающего их, хотят ли они перезаписать файл, кажется совершенно неуместным и, возможно, запутывающим для пользователя.

Я использую метод workbook.SaveAs(fileloaction).

Здесь я инициализирую объекты ссылки COM для интерполя excel.

private Excel.Application app = null;
    private Excel.Workbook workbook = null;

    public Excel.Workbook Workbook
    {
        get { return workbook; }
        set { workbook = value; }
    }
    private Excel.Worksheet worksheet = null;
    private Excel.Range workSheet_range = null;

Ниже приведен код, который я использую для закрытия/сохранения файла excel. Линия метода workbook.close() - это тот, который, как сообщается, бросает необработанное исключение.

 workbook.Close(true, startForm.excelFileLocation, Missing.Value);
            Marshal.ReleaseComObject(app);
            app = null;
            System.GC.Collect();
4b9b3361

Ответ 1

В принципе, все, что вам нужно, это ExcelApp.DisplayAlerts = False. Вот как я это делаю:

ExcelApp.DisplayAlerts = False
ExcelWorkbook.Close(SaveChanges:=True, Filename:=CurDir & FileToSave)

Надеюсь, что это поможет

Ответ 2

Только этот код будет требовать для предупреждения об остановке остановки или уже используемого шаблона

ExcelApp.DisplayAlerts = False

Ответ 3

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

Сначала я не люблю использовать: ExcelApp.DisplayAlerts = False

Установка этого флага устанавливает это свойство в файле excel, а не только в вашей программе. Это означает, что если пользователь вносит изменения в файл и закрывает его (нажав на X), им не будет предложено сохранить файл и впоследствии вызовет разочарование. Он также отключит любые другие подсказки excel, которые обычно публикуются.

Мне нравится проверять, существует ли файл перед его сохранением:

        if (File.Exists(SaveAsName))
        {
            File.Delete(SaveAsName); 
        }