2009-05-27 51 views
2

我正在做一些使用OpenXML Sdk v2 ctp的服务器端excel输出。有没有人有这方面的经验 - mpre具体如下:将小计添加到电子表格中的数据

有没有办法使用SDK在电子表格中的数据添加小计?或者我需要手动迭代添加OutlineLevel属性的数据?

rows.Add(new Row(cells.ToArray()) { 
    RowIndex = (UInt32Value)Convert.ToUInt32(idx), 
    Spans = new ListValue<StringValue>() { InnerText = "1:2" }, 
    OutlineLevel = (ByteValue)groupLevelCount 
}); 

这将是一个真正的皮塔饼如果我手动必须这样做,因为我需要做的多级分组和排序

回答

3

您是否尝试过使用DocumentReflector包含在SDK文档? DocumentReflector工具可以加载OpenXML文档,并反向设计用于使用SDK生成该文档的代码。换句话说,它从xlsx文件生成C#代码。

DocumentReflector工具位于Open XML Format SDK 2.0安装文件夹下的Tools文件夹中。

也许它可以帮助解决您的问题。

+0

它确实在一定程度上 - 但我正在从IList 翻译出色,所以 - 在反射镜工具中,它使用程序方法将行添加到工作表中 - 我需要遍历集合,并希望有一些我可以应用到工作表的功能数据添加后为我创建小计。 我现在唯一能看到这样做的方法是一旦添加数据就迭代数据,执行分组和sumarising manuall--这是一个完全PITA:s – 2009-05-27 14:27:58

1

简短的回答是否定的。 OpenXML SDK使您可以完全访问XLSX文件。您可以添加,删除和/或更改工作簿中的元素。但是,就是这样 - 对元素的低级访问。它没有任何类型的处理功能。

0

如果你有宏或式覆盖小区范围中的工作簿时,可以将其设置在电子表格被打开时执行:

参见OpenXmlSdk: make Excel Recalculate formula.

spreadSheet.WorkbookPart.Workbook.CalculationProperties.ForceFullCalculation = true; 
spreadSheet.WorkbookPart.Workbook.CalculationProperties.FullCalculationOnLoad = true; 
相关问题