Войти

Показать полную графическую версию : [решено] результаты формул в excel


Surround
20-04-2008, 11:00
Есть программа, которая читает содержимое xls-файла через OLEDB (написано на C#). Файл этот содержит расчетные формулы, типа: если дата окончания работы < даты срока, то состояние = "в норме", если нет, то "отклонение". Так вот интересует конечное содержимое этих, так сказать, ячеек состояния. Опытным путем я понял, что эксель, что называется, проводит формулы, т.е. записывает результаты вычислений по ним в какой-то кеш документа, откуда потом берет, чтобы не считать заново (и, по всей видимости, он и читается при OLEDB). Так вот, при сохранении документа, видать, не все результаты формул были сохранены (сами формулы на месте), так как при обращении прогаммы к этим ячейкам возвращается не то, что должно там быть (не тот результат, который видим в документе). А если просто-напросто открыть документ и закрыть, ничего не меняя и ответив Да в диалоге Сохранить документ (видимо как раз-то самое проведение), то впоследствии данные читаются нормально. Точнее, как сказать читаются. Читаются они в обоих случаях. Только результат правльный - во втором (то что видит прогамма = тому, что есть в документе). Такой глюк не у всех, а лишь у некоторых формул. Так вот, можно ли как-то "провести" документ, не открывая/закрывая его?

pva
21-04-2008, 14:39
Есть вариант создать объект activeX "Excel.Sheet", "скопировать" и "вставить значения". Потом работать со значениями...

azbest
21-04-2008, 23:57
Если ваш файл не "надстройка" (расширение ***.xla - скомпилированный файл)а обычный или шаблон, Тогда в открытом файле нажмите Alt+F8 и в появившемся окне поочерёдно тыкая на каждую "строчку" в самом большом диалоговом окне (это названия макросов) и нажимая "изменить" - прочитайте содержимое этих макросов. Там наверняка будет ясно где храняться промежуточные данные.




© OSzone.net 2001-2012