Возникает ошибка при открытии файла excel уже существует, изменять и сохранять с#
Я создаю приложение на c# - это "Lab Connects".Он используется для открытия уже существующего файла excel, его изменения и сохранения. Но это происходит ошибка :
System.Runtime.InteropServices.COMException (0x800A03EC): Excel cannot access 'Lab Connects'. The document may be read-only or encrypted. at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)Это код :
Excel.Application excel = new Excel.Application(); Excel.Workbook workbook = excel.Workbooks.Open(filePath); Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets.get_Item(1); // Modify content .... workbook.Save(); workbook.Close();Примечание : файл Excel имеет макрос. Надеюсь, что есть решение от каждого !
Что я уже пробовал:
- У меня было установлено для пользователя полное разрешение (администратор)
- Я был обновление файла Excel из .XLS для .XLSX и .файл xlsm(с помощью Excel макрос)
=> Но все это не работает
Patrice T
Что происходит, когда вы открываете файл непосредственно в excel ?
Husky 23021988
Привет @Patrice, открыть файл непосредственно в excel - это нормально
Richard MacCutchan
Сообщение об ошибке ясно говорит вам, что система не может прочитать содержимое файла. Сначала вам нужно исправить это в Excel.
Husky 23021988
Привет @Richard MacCutchan, я открыл файл непосредственно в excel, изменил, сохранил и закрыл, но при открытии приложением ошибка все равно возникает
Richard MacCutchan
Что находится в filepath
строка, когда вы вызываете Open
метод?
Husky 23021988
Привет @Ричард MacCutchan, путь_к_файлу = "D:\\HongDuc\\New\\labcls\\trunk\\LIS\\Source 2.0\\подключение\\подключение\\бин\\DataXml\\Z_H.Пилори IgG.xls"
Richard MacCutchan
Это не соответствует сообщению об ошибке. Очевидно, там происходит что-то еще. Возможно, он пытается открыть макрос из внешнего источника.
Smart003
Я думаю, что кто-то или какая-то служба использует excel, я столкнулся с аналогичной проблемой, но при перезагрузке моего компьютера код C# работает успешно
Husky 23021988
Привет @Smart003, я так думаю, и я пробовал на каком-то ПК, но это не работает
Smart003
У меня есть один вопрос, вы пытаетесь обновить файл с .xlsx до .xlsm с помощью C#, если это так, то иногда файл .xlsm будет создан, но не может быть открыт
Пожалуйста, проверьте и дайте нам знать
Husky 23021988
Привет @Smart003, тип исходного файла -. xls => ошибка все еще происходит. Затем я был изменен на .xlsx, чтобы попробовать, но ошибка все еще происходит. Затем я был изменен на .xlsm, но ошибка все еще происходит. И я использую excel для изменения типа файла
Smart003
вы пытаетесь конвертировать файл из .xls в .xlsx с помощью кода или вручную?
если вы вручную скопировали все данные из файла .xls и скопировали их в другой файл, сохраните его как файл .xlsx.
Иногда в файле может быть проблема, которую мы не можем идентифицировать.