我需要创建一个工作簿,其中包含工作表上的原始数据和另一个工作表上的数据透视表。枢轴是从原始数据创建的。然后我需要在相同或新的工作表上创建一个带有此轴的图表。
如何在C#中执行此操作 - 这是否可以使用VSTO?
答案 0 :(得分:4)
最简单的方法吗?
使用Open XML SDK 2.0
答案 1 :(得分:2)
之前我做过类似的事情,但我没有用C#做过。我使用VBA,因为语言已内置于Excel中。
我的方法是:
如果原始数据和数据透视表的布局保持不变,则此方法非常有效。我有一个我为cowork制作的工作簿,它根据一组数据用数据透视表更新多个工作表。她非常喜欢它,因为只需点击一个按钮,她就可以清楚地看到她的所有数据。
如果这种方法适合您,并且您想了解如何实施其中一些方法的详细信息,请告诉我您的具体情况,我可以尝试帮助您。
答案 2 :(得分:1)
一种选择是从Excel连接到数据库并通过VBA或defining an SQL query in Pivot data source刷新“原始数据”表。这不是很好,因为打开文件的用户必须能够连接到数据库。
另一种选择是通过C#以编程方式填充“原始数据”表。有numerous libraries可以帮助您,甚至一些free ones,但您也可以使用Excel XML格式(SpreadsheetML)自己完成。您可以使用Excel 2003 XML格式或新的Open XML Excel format。后者要复杂得多,但有了它,您还可以利用OpenXML SDK和Excel Package API。