У меня есть класс, который читает и записывает ячейки Excel (xlsx) с помощью OpenXML SDK. Класс основан на ответе, получившем наибольшее количество голосов отсюда: Open XML SDK 2.0 - как обновить ячейку в электронной таблице?
Мне нужно обновить ячейку, а затем получить значение другой ячейки, которая содержит формулу расчета. Обновление работает нормально, но когда я читаю ячейку формулы после обновления, я получаю старое значение, которое существовало в документе до редактирования. Однако, когда я открываю свой xlsx вручную после запуска программы, я вижу правильное значение.
Кажется, что старое значение для ячейки где-то кешируется ... Что странно, потому что я открываю / закрываю свой документ каждый раз, прежде чем читать / писать ячейки.
РЕДАКТИРОВАТЬ: ответ Винсента заставил меня обновить образец кода. Я добавил метод Refresh, который открывает, сохраняет и закрывает документ в приложении Excel, запущенном в фоновом режиме. Это пересчитывает мои формулы. Дополнительные сведения и пример кода C # см .: http://fczaja.blogspot.com/2013/05/how-to-read-and-write-excel-cells-with.html