Я делаю вывод excel на стороне сервера, используя OpenXML Sdk v2 ctp. Кто-нибудь здесь имел опыт использования этого - специально для mpre:
Есть ли способ добавить промежуточные итоги к данным в электронной таблице с помощью SDK? или мне нужно вручную перебирать данные, добавляя свойство OutlineLevel?
rows.Add(new Row(cells.ToArray()) {
RowIndex = (UInt32Value)Convert.ToUInt32(idx),
Spans = new ListValue<StringValue>() { InnerText = "1:2" },
OutlineLevel = (ByteValue)groupLevelCount
});
это будет реальная PITA, если мне нужно сделать это вручную, так как мне нужно сделать многоуровневую группировку и сортировку
Вы пытались использовать документ DocumentReflector, включенный в SDK? Инструмент DocumentReflector может загружать документ OpenXML и реконструировать код для создания этого документа с помощью SDK. Другими словами, он генерирует код С# из файла xlsx.
Инструмент DocumentReflector находится в папке "Инструменты" в папке установки Open XML Format SDK 2.0.
Возможно, это поможет исправить вашу проблему.
Короткий ответ - нет. OpenXML SDK предоставляет полный доступ к файлу XLSX. Вы можете добавлять, удалять и/или изменять элементы в книге. Но все это - низкий уровень доступа к элементам. Он не имеет каких-либо функций обработки.
Если у вас есть макрос или формула, охватывающая диапазон ячеек в рабочей книге, вы можете настроить ее на выполнение при открытии электронной таблицы:
Смотрите OpenXmlSdk: сделайте Excel пересчитайте формулу.
spreadSheet.WorkbookPart.Workbook.CalculationProperties.ForceFullCalculation = true;
spreadSheet.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true;