gpt4 book ai didi

excel - 有没有办法通过 openpyxl 将下拉菜单保留或添加到 Excel?

转载 作者:行者123 更新时间:2023-12-04 09:38:08 31 4
gpt4 key购买 nike

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

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

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 文件的格式。

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

最佳答案

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

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')

关于excel - 有没有办法通过 openpyxl 将下拉菜单保留或添加到 Excel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62455240/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com