在电子表格中为数据添加小计

时间:2009-05-27 13:01:56

标签: c# asp.net ms-office openxml

我正在使用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,因为我需要进行多级分组和排序

3 个答案:

答案 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;