Я пытаюсь разобрать лист Excel с помощью EPPlus, и у меня возникают проблемы с получением значений из ячеек формулы. Документ, который я использую, загружается из inte rnet как байтовый массив во время выполнения и работает нормально, если его сохранить и открыть с помощью Excel. Формат файла - .xlsm (макросы включены).
Проблема заключается в следующем: некоторые ячейки содержат формулы, которые просто ссылаются на ячейки на разных листах, например: ='diffSheet'!A25
. Я не могу получить значения из таких ячеек: cell.Value
имеет значение null, а cell.Text
- это просто «-».
Я пробовал вызвать метод Calculate () для этих ячеек, но все, что он делает, это просто загрузка для действительно долгое время, а затем каждый раз возвращает ошибку «#VALUE».
Странно то, что тот же документ обрабатывается одним и тем же кодом, если документ был открыт Excel ранее. Я попытался загрузить документ вручную, открыть его в Excel, а затем загрузить обратно; и после этого у кода не было проблем с получением значений из тех же ячеек. Возможно, стоит отметить, что Excel не вычисляет значения формул, если вы не нажмете кнопку «Разрешить редактирование», но, насколько мне известно, такой вещи как EPPlus не существует. Я попытался сохранить и снова открыть документ программно, но это не сработало.
Надеюсь, кто-нибудь сможет объяснить, в чем проблема, и есть ли способ обрабатывать документ без необходимости открывать его каждый раз пользователю .
Заранее спасибо!