@Leocoan

Ошибка доступа к Excel-документу?

Использую библиотеку Interop.Excel для работы с таблицами. При попытке присвоить ячейке какое-то значение возникает исключение System.Runtime.InteropServices.COMException: "Ошибка доступа к документу 'Excel.xlsx', допускающему доступ только для чтения.", при выполнении метода Save(). Как разрешить доступ?
class ExcelSystem : SystemInformation, IExcelSystem
    {
        public ExcelSystem() {}

        public ExcelSystem(string path, int Sheet)
        {
            this.path = path;
            wb = ecxel.Workbooks.Open(path, 0 , false);
            ws = wb.Worksheets[Sheet];
        }

        public void save()
        {
            wb.Save();
        }

        public void saveAs(string path)
        {
            wb.SaveAs();
        }

        public void close()
        {
            wb.Close();
        }

        public void quit()
        {
            ecxel.Quit();
        }
    }


И кусок кода, где пытаюсь вызвать сам метод.
public void writeFile()
        {   
            if(openFileDialog2.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            string excelFileName = openFileDialog2.FileName;
            ExcelWriter excelWriter = new ExcelWriter(excelFileName, 1);
            ExcelSystem excelSystem = new ExcelSystem(excelFileName, 1);
            excelWriter.writeToCell(0, 0, thing);
            excelSystem.save();
            excelSystem.saveAs(excelFileName += "Новый.xlsx");
            excelSystem.close();
            MessageBox.Show("Done");
        }
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
idShura
@idShura
Очень просто, нужно открыть документ в режиме редактирования

wb = ecxel.Workbooks.Open(path, 0 , true);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Аскон Санкт-Петербург
от 130 000 до 180 000 руб.
от 100 000 руб.
ЭЛКОМ+ Томск
от 70 000 до 120 000 руб.