EPPlus не поддерживает функцию «Показать значение как» для полей сводных данных, но на этой странице описан хороший прием, позволяющий изменить данные XML за сводной таблицей.
Основная идея заключается в том, что вы устанавливаете функцию поля данных на сумму, а его формат отображения в процентах с помощью EPPlus, а остальные - с помощью Open XML.
Если pivotTable
- это ваш Pivot, а dataField
это поле данных, с которым вы работаете, чем пример кода на упомянутой странице дает следующее решение:
var xdoc = pivotTable.PivotTableXml;
var nsm = new XmlNamespaceManager(xdoc.NameTable);
var schemaMain = xdoc.DocumentElement.NamespaceURI;
if (nsm.HasNamespace("x") == false)
nsm.AddNamespace("x", schemaMain);
var dataFieldNode = xdoc.SelectSingleNode(
"/x:pivotTableDefinition/x:dataFields/x:dataField[@name='" + dataField.Name + "']",
nsm
);
dataFieldNode.AppendAttribute("showDataAs", "percentOfTotal");