在openpyxl

时间:2016-10-30 17:05:03

标签: python excel vba excel-vba

我正在使用openpyxl从Python编写Excel工作表,并希望在工作表中插入“spinners”。

到目前为止,我一直无法找到任何相关信息。我也愿意使用其他Python包。

如果无法做到这一点,还有另一种方法吗?我正在考虑从Python编写宏并以某种方式将其与Excel工作表合并的方法?

1 个答案:

答案 0 :(得分:1)

似乎here openpyxl不支持ActiveX控件,如果工作簿由openpyxl处理,它们将被丢弃。

如果安装了Excel,则可以通过pywin32访问以下所有内容。

Here is a good overview可用于Excel的不同类型的控件

似乎有两种类型的控件可以嵌入到Excel工作表中:

  • Excel控件(旧版,向后兼容Excel 5)
  • ActiveX控件(更新,更可自定义)

Excel控件

Excel Automation Worksheet对象有一个名为Spinners的方法,它本身有一个方法Add。 VBA代码如下所示(使用Macro Recorder生成):

ActiveSheet.Spinners.Add(816, 36, 92.25, 49.5)

我没有设法找到有关以编程方式添加这些控件的任何文档。

ActiveX控件

这些似乎是标准的Microsoft Forms记录here。具体来说,SpinButton控件记录在here

使用Macro Recorder,我得到以下内容:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.SpinButton.1", Link:=False, _
    DisplayAsIcon:=False, Left:=633, Top:=47.25, Width:=58.5, Height:= _
    62.25)