Моя текущая задача - написать код, который выполняет следующее:
Принимает пользовательский ввод, который будет обозначаться как batchNumber
Принимает пользовательский ввод, который будет обозначен как batchLocation
Просмотр каждой строки в файле .xlsx с именем customerData
Соответствие пользовательский ввод batchNumber
для данных в первом столбце
Запись batchLocation
в ячейку в 3-м столбце рядом с batchNumber
Я думаю, что это намного проще, чем я это представляю, но я, кажется, вращаюсь кругами.
Документ Excel структурирован как ...
Batch Number Product Type Location
1234 Guitar *Blank*
2345 Drums *Blank*
Я пытался изменить код ATBS из раздела Excel, но не могу заставить его работать с пользовательским вводом вместо данных из словаря. Код выполняется без ошибок, но изменения не вносятся, если данные не появляются в самой первой строке? Я также пытался использовать iter_rows()
, но не добился большого успеха.
import openpyxl
wb = openpyxl.load_workbook('customerData.xlsx')
sheet = wb['SalesOrders']
# User Input of data
CUSTOMER_UPDATE = {}
batchNumber = str(input('Please scan the batch number: '))
batchLocation = input('Please scan the location: ')
CUSTOMER_UPDATE[batchNumber] = batchLocation
# Loop through the rows and update the location
for rowNum in range(2, sheet.max_row): #Used to skip the first row as it is only a header.
productName = sheet.cell(row=rowNum, column=1).value
if productName in CUSTOMER_UPDATE:
sheet.cell(row=rowNum, column=3).value = CUSTOMER_UPDATE[productName]
wb.save('customerDataCopy.xlsx')