откройте xml для запроса ячеек Excel - PullRequest
7 голосов
/ 15 февраля 2011

В прошлом я создавал компонент для передачи и извлечения значений в / из Excel с использованием библиотек Excel.Хорошо, что, как только вы поместите свою книгу в память и измените ячейку (назовем ее ячейкой происхождения), все остальные ячейки с формулами, которые принимают значение этой исходной ячейки, автоматически обновляются.

Возможно ли это вOpenXml?

Насколько я вижу, очевидно, что это не происходит в OpenXml, потому что движок Excel не выполняется в фоновом режиме, OpenXml - это просто группа классов для сериализации, десериализации, чтения и т. Д. XML-файлов.право

1 Ответ

3 голосов
/ 16 февраля 2011

Правильно, Office Open XML SDK - это просто набор библиотек для чтения / записи файлов XML. Он не имеет никаких функций для выполнения расчетов.

Вы можете указать, что Excel должен пересчитывать все при загрузке, установив следующий атрибут, но если вам нужно прочитать новые значения в коде (до повторного открытия в Excel), это не поможет.

<workbook> 
  <calcPr fullCalcOnLoad="1"/> 
</workbook> 

Или в коде с Office Open XML SDK ..

using (var doc = SpreadsheetDocument.Open(path, false))
{
    doc.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true;
    .
    .
    .
}
...