用Python在openpyxl中创buildExcel“spinners”

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

至今我一直无法find任何东西。 我也愿意使用其他Python包。

如果不能这样做,还有另外一种方法吗? 我正在思考从Python写macros的方式,并以某种方式将它与Excel表格合并?

从这里看来,openpyxl不支持ActiveX控件,如果工作簿是由openpyxl处理的话,它们将被丢弃。


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

以下是可用于Excel的不同types的控件的一个很好的概述

看起来有两种types的控件可以embedded到Excel工作表中:

  • Excel控件(较老,向后兼容Excel 5)
  • ActiveX控件(更新,更可定制)

Excel控件

Excel自动化Worksheet对象有一个称为Spinners的方法,它本身有一个Add方法。 VBA代码如下所示(使用macroslogging器生成):

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

我没有设法find任何编程添加这些控件的文档。


ActiveX控件

这些似乎是此处logging的标准Microsoft Forms。 具体来说, 这里logging了SpinButton控件。

使用macros录像机,我得到以下内容:

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