Добавить промежуточные итоги к данным в электронной таблице

2

Я делаю вывод 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, если мне нужно сделать это вручную, так как мне нужно сделать многоуровневую группировку и сортировку

Теги:
ms-office
openxml

3 ответа

3

Вы пытались использовать документ DocumentReflector, включенный в SDK? Инструмент DocumentReflector может загружать документ OpenXML и реконструировать код для создания этого документа с помощью SDK. Другими словами, он генерирует код С# из файла xlsx.

Инструмент DocumentReflector находится в папке "Инструменты" в папке установки Open XML Format SDK 2.0.

Возможно, это поможет исправить вашу проблему.

  • 0
    Это в некоторой степени - но я перевожу с IList <Obj>, чтобы преуспеть в этом - где в инструменте отражателя он использует процедурный метод для добавления строк на лист - мне нужно перебрать коллекцию и надеялся, что было некоторую функцию, которую я мог бы применить к рабочему листу после добавления данных, чтобы создать для меня промежуточные итоги. Единственный способ сделать это прямо сейчас - это перебрать данные, как только они будут добавлены, выполнить группировку и суммирование, что является полной PITA: s
1

Короткий ответ - нет. OpenXML SDK предоставляет полный доступ к файлу XLSX. Вы можете добавлять, удалять и/или изменять элементы в книге. Но все это - низкий уровень доступа к элементам. Он не имеет каких-либо функций обработки.

0

Если у вас есть макрос или формула, охватывающая диапазон ячеек в рабочей книге, вы можете настроить ее на выполнение при открытии электронной таблицы:

Смотрите OpenXmlSdk: сделайте Excel пересчитайте формулу.

spreadSheet.WorkbookPart.Workbook.CalculationProperties.ForceFullCalculation = true;
spreadSheet.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true; 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню