Автозаполнение в Excel, проверка данных с использованием Python - PullRequest
1 голос
/ 03 апреля 2020

Я хочу создать лист Excel с использованием openpyxl и Python 3 с функцией проверки данных - см. Мой код Python ниже. Моя проблема в том, что мне нужна проверка данных, а не выбор из списка. Предположим, что список очень длинный, тогда пользователю будет неудобно выбирать из списка. Следовательно, есть ли способ создать этот лист Excel из Python, где разрешена функция автозаполнения? Под автозаполнением я подразумеваю, что пока пользователь вводит совпадение со списком, выполняется предложение предложений для сопоставления со списком.

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

# Create the workbook and worksheet we'll be working with
wb = Workbook()
ws = wb.active

# Create a data-validation object with list validation
dv = DataValidation(type="list", formula1='"Dog,Cat,Bat"', allow_blank=True)

# Optionally set a custom error message
dv.error ='Your entry is not in the list'
dv.errorTitle = 'Invalid Entry'

# Optionally set a custom prompt message
dv.prompt = 'Please select from the list'
dv.promptTitle = 'List Selection'

# Add the data-validation object to the worksheet
ws.add_data_validation(dv)

c1 = ws["A1"]
c1.value = "Dog"
dv.add(c1)
c2 = ws["A2"]

c2.value = "An invalid value"
dv.add(c2)

# Or, apply the validation to a range of cells

# Write the sheet out. If you now open the sheet in Excel, you'll find that
# the cells have data-validation applied.
wb.save("test.xlsx")
...