我正在使用OpenXML Sdk v2 ctp做一些服务器端excel输出。这里有没有人有这方面的经验 - 具体来说:
有没有办法使用SDK为电子表格中的数据添加小计?或者我是否需要手动迭代添加OutlineLevel属性的数据?
rows.Add(new Row(cells.ToArray()) {
RowIndex = (UInt32Value)Convert.ToUInt32(idx),
Spans = new ListValue<StringValue>() { InnerText = "1:2" },
OutlineLevel = (ByteValue)groupLevelCount
});
如果我必须手动完成,那么这将是一个真正的PITA,因为我需要进行多级分组和排序
答案 0 :(得分:3)
您是否尝试过使用SDK中包含的DocumentReflector文档? DocumentReflector工具可以加载OpenXML文档并对使用SDK生成该文档的代码进行反向工程。换句话说,它从xlsx文件生成C#代码。
DocumentReflector工具位于Open XML Format SDK 2.0安装文件夹下的Tools文件夹中。
也许它有助于解决您的问题。
答案 1 :(得分:1)
简短的回答是否定的。 OpenXML SDK使您可以完全访问XLSX文件。您可以添加,删除和/或更改工作簿中的元素。但就是这样 - 对元素的低级访问。它没有任何处理功能。
答案 2 :(得分:0)
如果您有一个宏或公式覆盖工作簿中的单元格范围,您可以将其设置为在打开电子表格时执行:
请参阅OpenXmlSdk: make Excel Recalculate formula.
spreadSheet.WorkbookPart.Workbook.CalculationProperties.ForceFullCalculation = true;
spreadSheet.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true;