1

使用 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工作簿中的方法...

4

3 回答 3

2

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

但是,一切并没有丢失:您可以通过访问底层 COM 对象来控制图表,如下所示(跟进上面的代码):

chart.xl_chart.Chart.ChartType = -4102

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

于 2014-04-04T11:59:09.880 回答
0

Why not just use win32com? With that you get the full Excel Object model so you can do anything you could if you were using VBA.

I found a small code sample for adding a chart using win32com here: http://techlinksandstuff.blogspot.co.uk/2012/11/using-python-to-plot-in-excel.html

The object model is documented on MSDN, or it's exactly the same as what you'd do in VBA if you're familiar with that. http://msdn.microsoft.com/en-us/library/wss56bz7.aspx

于 2014-11-12T20:45:36.440 回答
-2

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

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

这可能很有趣。如果不适合您,那么适合阅读此问题的人。

于 2014-04-07T23:05:21.353 回答