我有一个托管大量定价数据的 Web 服务,并返回与某些规定的查询参数相关的数据。数据作为 Datatable 对象(在 C# 中)返回 - 对象类型本身并不重要,因为数据直接进入内存并且不在主机 Excel 对象的电子表格中。
现在,我想根据这些数据创建一个数据透视表。
我一直在网上寻找高低,我看不到任何人解释如何做到这一点。这是不可能的吗?建议将 VSTO 作为未来唯一支持的使用 Web 服务数据的方式似乎是愚蠢的,但是却不可能从该数据中提取数据透视表。
我唯一的解决方案是 kludges,在我做这些丑陋的事情之一之前,我想确保没有一个优雅的解决方案:
- 将数据表转储到 excel 工作表并将数据透视表指向 excel 范围。这远非理想,因为我要么对整个数据集进行逐行删除(慢得见鬼),要么以 2 倍的内存消耗达到峰值
- 将数据表转储到文件系统并将数据透视表指向平面文件。这甚至更糟,但至少没有内存缺陷。
这些真的是执行此操作的唯一方法吗?必须有更优雅的东西。
数据表:http: //msdn.microsoft.com/en-us/library/system.data.datatable.aspx
PivotCache: http: //msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.pivottable.pivotcache (v=office.11).aspx