控制xlwings中的图表类型

时间:2014-04-04 06:55:01

标签: python excel xlwings

如何使用python中的 xlwings 在Excel中制作图表时如何控制图表类型?

我在当前文档中看不到任何内容:http://docs.xlwings.org/chart.html

如xlwings快速入门中给出的示例:

from xlwings import Workbook, Range, Chart
wb = Workbook()  # Creates a connection with a new workbook
Range('A1').value = ['Foo 1', 'Foo 2', 'Foo 3', 'Foo 4']
Range('A2').value = [10, 20, 30, 40]
chart = Chart().add()
chart.set_source_data(Range('A1').table)

然后我找不到控制Excel工作簿中添加哪种图表的方法......

3 个答案:

答案 0 :(得分:2)

这是图表中仍然缺少的基本功能之一,如文档中所述。它已记录here,因此它有望进入下一个版本。

但是,一切都没有丢失:您可以通过访问基础COM对象来控制图表(如上所示):

chart.xl_chart.Chart.ChartType = -4102

您必须从MSDN reference中查找所需特定图表类型的值。所以不是很漂亮,但它应该工作,直到它在xlwings中实现。

答案 1 :(得分:0)

为什么不使用win32com?这样您就可以获得完整的Excel对象模型,这样您就可以在使用VBA时做任何事情。

我在这里找到了一个使用win32com添加图表的小代码示例: http://techlinksandstuff.blogspot.co.uk/2012/11/using-python-to-plot-in-excel.html

对象模型记录在MSDN上,或者如果您熟悉它,它与您在VBA中执行的操作完全相同。 http://msdn.microsoft.com/en-us/library/wss56bz7.aspx

答案 2 :(得分:-2)

或者您可以自己编写代码,然后提交补丁。如果您可以通过Excel界面调出图表,则可以使用宏记录器为VBA确定需要哪些对象和操作。

将非常具体的生成的VBA代码转换为通用Python需要一些工作,但您可以使用Excel VB编辑器的对象浏览器,IntelliSense和帮助文件来指导您。一旦你遵循使用装饰器使事情易于管理,Python的编码风格非常简单。

这可能很有趣。如果不适合你,那么对于那些阅读这个问题的人来说。