3

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

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

这将采用“Chart1”并将其移动到第三张纸之后。我如何在 Python 中做到这一点?我知道代码是这样的:

xlChart.Move(Before,After)

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

提前感谢您的帮助!

4

1 回答 1

4

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

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等效的。最后,您可以使用命名参数。

于 2011-03-14T22:55:21.823 回答