创建一个下拉列表在excel中使用python

x33g5p2x  于 2023-03-31  发布在  Python
关注(0)|答案(1)|浏览(244)

我想用Python在Excel中创建一个简单的下拉列表,其中包含:

  • 允许我按年份筛选的第一个单元格:2020 2021 2022 ..2024
  • 第二个单元格允许我按月份进行筛选:一二三...十二

这是我的代码:

import pandas as pd
import numpy as np

from openpyxl.worksheet.datavalidation import DataValidation
from openpyxl import Workbook
import xlsxwriter

wb = Workbook()
ws = wb.create_sheet('list')
wss = wb.create_sheet('year')

for number in range(1,9): #Generates 10 "date" year in the Column A;
  ws['A{}'.format(number)].value= "202{}".format(number)

data_val = DataValidation(type="list",formula1='=$A:$A') 
ws.add_data_validation(data_val)

data_val.add(wss["B1"]) # drop down list with all the values 

wb.save('date.xlsx')

我不知道如何完成这个代码,我想在工作表'列表'所有的年份从2020年到2040年,并在工作表'年'有下拉列表
提前感谢您的帮助!

wpcxdonn

wpcxdonn1#

嘿,你可以通过对你的代码做以下修改来做到这一点:

import pandas as pd
import numpy as np

from openpyxl.worksheet.datavalidation import DataValidation
from openpyxl import Workbook
from openpyxl.utils import quote_sheetname

wb = Workbook()
ws = wb.create_sheet('list')
wss = wb.create_sheet('year')

for number in range(1,9): #Generates 10 "date" year in the Column A;
  ws['A{}'.format(number)].value= "202{}".format(number)

data_val = DataValidation(type="list",formula1='{0}!$A:$A'.format(quote_sheetname('list'))) 
wss.add_data_validation(data_val)

data_val.add(wss["B1"]) # drop down list with all the values 

wb.save('date.xlsx')

这将使下拉列表作为工作表“列表”第一列中的值。希望这有帮助。

相关问题