控制xlwings中的图表types

如何使用Python中的xlwings在Excel中制作图表时控制图表的types?

在目前的文档中我没有看到任何东西: 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) 

然后,我还没有find一种方法来控制什么样的图表添加到Excel工作簿…

正如文档中指出的那样,这是图表仍然缺less的基本function之一。 它已经logging在这里 ,所以有希望进入下一个版本。

但是,并不是所有的东西都丢失了:你可以通过访问底层的COM对象来控制图表(像上面的代码一样):

 chart.xl_chart.Chart.ChartType = -4102 

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

为什么不使用win32com? 这样你就可以得到完整的Excel对象模型,所以如果你使用VBA,你可以做任何事情。

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

对象模型在MSDN上进行了logging,或者如果您熟悉VBA,则完全相同。 http://msdn.microsoft.com/en-us/library/wss56bz7.aspx

或者你可以自己编写代码,并提交补丁。 如果您可以通过Excel界面调出Chart,则可以使用VBA的Macro Recorder来计算需要执行的对象和操作。

将特定生成的VBA代码翻译成通用Python将需要一些工作,但是您可以使用Excel VB编辑器的对象浏览器,智能感知和帮助文件来指导您。 Python的编码风格非常简单,一旦你遵循使用装饰器来使事情变得易于pipe理。

这可能很有趣。 如果不是为了你,那么读一个​​这个问题的人。