使用Python中的XLWings创建下拉列表



我试过这个代码,但这是为了验证。我想要一个代码来创建一个新的下拉菜单。


app = xw.App(visible=True)
wb = app.books.open('Test.xlsx')
sht = wb.sheets['Sheet1']
Formula1='"Dog,Cat,Bat"'
dv = sht.range('A1').api.Validation.Formula1

我试过使用openpyxl,它正在工作,但当文件打开时,它不会保存文件。

xlwingswin32com的包装器,类似于VBA。通过录制VBA宏以供参考,以下代码应该可以工作。

import xlwings as xw
app = xw.App(visible=True)
wb = app.books.open('Test.xlsx')
sht = wb.sheets['Sheet1']
Formula1='Dog,Cat,Bat' # remove the redundant "

# set up validation
sht.range('A1').api.Validation.Add(Type=3, Formula1=Formula1)

探索步骤:

为创建list类型数据验证的默认步骤记录一个宏:

Sub Macro1()
'
' Macro1 Macro
'
'
Range("A1").Select
Application.WindowState = xlMaximized
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="Dog,Cat,Bat"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub

事实上,我们只做了两个关键步骤,并保持了默认的其余步骤:

  • 从验证标准下拉列表中选择List
  • 键入列表的来源

因此,上述代码应简化为

' VBA
Range("A1").Validation.Add Type:=xlValidateList, Formula1:="Dog,Cat,Bat"

相关内容

  • 没有找到相关文章

最新更新