使用Python进行Excel win32com编程。将参数传递给函数

时间:2011-03-14 22:19:23

标签: python excel win32com

我怀疑这个问题有一个简单的答案,但我无法在任何地方找到它!我正在编写一个函数来绘制excel中的大量数据,我正在用Python控制绘图。我已经生成了所有的图表,每个图表都是自己的图表,但是它们不正常。 VBA代码是:

Sheets("Chart1").Move After:=Sheets(3)

这将采用“Chart1”并在第3张后移动它。我如何在Python中执行此操作?我知道代码是这样的:

xlChart.Move(Before,After)

如何告诉python Before和After参数?我想最重要的是我还没弄清楚如何在win32com编程中传递参数。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

这是一个非常简单的例子:

from win32com import client

excel=client.Dispatch("Excel.Application")
excel.Visible=True
book=excel.Workbooks.Open("c:/desktop/test.xlsx", False, True)
sheet=book.Worksheets(1)
chart=book.Charts.Add()
chart.SetSourceData(sheet.Range("$A:$B"))

chart.Move(Before=book.Worksheets("Sheet2"))
chart.Move(book.Worksheets("Sheet2"))#equivalent to previous line
chart.Move(book.Worksheets("Sheet2"), None)#also equivalent

chart.Move(After=book.Worksheets("Sheet2"))
chart.Move(None,book.Worksheets("Sheet2"))#equivalent to previous line

我试图展示处理可选参数的各种选项,这些参数是Excel COM编程的重要问题。您可以使用位置参数传递并从末尾省略参数。或者你可以通过相同的None。最后,您可以使用命名参数。