首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法通过openpyxl将下拉列表保存或添加到Excel?

有没有办法通过openpyxl将下拉列表保存或添加到Excel?
EN

Stack Overflow用户
提问于 2020-06-19 00:51:49
回答 1查看 343关注 0票数 2

我有一个工作脚本来读取excel文件,并将其另存为另一个文件。正在读取的文件具有多个单元格,这些单元格具有引用另一个工作表上的单元格的数据验证(下拉菜单)。我无法通过不覆盖下拉菜单或在脚本中插入下拉菜单来保留下拉菜单。

例如,我有一个单元格,ws上的C42 (主窗体),我想要一个引用ws1上的K2:K4的下拉列表(下拉列表)。这是我到目前为止所知道的:

代码语言:javascript
运行
复制
from openpyxl import Workbook
from openpyxl import load_workbook
from openpyxl.worksheet.datavalidation import DataValidation

wb = load_workbook(pathdb+Filepathdb)
ws=wb['Main Form']
ws1=wb['Drop Down List']

dv = DataValidation(type='list', formula1=ws1['K2:K4'], allow_blank=True, showDropDown=True)
ws.add_data_validation(dv)
dv.add(ws["C42"])

有没有人能帮我指出我哪里出了问题?当我添加这个的时候,它也会打乱整个excel文件的格式。

还尝试了:

代码语言:javascript
运行
复制
data_val = DataValidation(type="list",formula1='K2:K4', allow_blank=True, showDropDown=True) 
ws1.add_data_validation(data_val)  
data_val.add(ws["C42"])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-19 12:58:44

如果您有大量的it (10+),最好先将它们存储到excel中的某一列中,然后使用它们的范围作为数据验证“源”,又名formula1

代码语言:javascript
运行
复制
from openpyxl.worksheet.datavalidation import DataValidation
wb = Workbook()
ws = wb.create_sheet('New Sheet')
for number in range(1,100): #Generates 99 "ip" address in the Column A;
    ws['A{}'.format(number)].value= "192.168.1.{}".format(number)

data_val = DataValidation(type="list",formula1='=$A:$A') #You can change =$A:$A with a smaller range like =A1:A9
ws.add_data_validation(data_val)

data_val.add(ws["B1"]) #If you go to the cell B1 you will find a drop down list with all the values from the column A

wb.save('Test.xlsx')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62455240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档