Используя OpenXML, вы можете получить список именованных диапазонов в документе Excel, используя нечто похожее на:
IEnumerable<DefinedName> names = document
.WorkbookPart
.Workbook
.DefinedNames
.Cast<DefinedName>();
Каждый из этих DefinedName
имеет свойство Text
, которое определяет диапазон, к которому он относится, например,
Sheet1!$B$3:$D$8
, который мы можем затем проанализировать и использовать для извлечения данных. По крайней мере, я так понимаю этот процесс.
Однако, с динамическим диапазоном, свойство text может содержать что-то вроде:
OFFSET(Sheet1!$F$3,0,0,COUNTA(Sheet1!$F:$F),1)
Это не диапазон, это формула, которая возвращает диапазон, и это результат этой формулы, который мне нужен.
Можно ли рассчитать эту формулу или результат уже сохранен где-то в электронной таблице, которую я могу прочитать? Или есть какой-то другой способ, которым я могу прочитать динамический именованный диапазон?
Этот вопрос конкретно касается OpenXML. Я знаю, что это можно сделать с помощью других инструментов.