Я работаю над простой информационной базой данных с использованием python и excel, в настоящее время у меня есть книга Excel (db.xlsx), содержащая 1 лист с 3 столбцами и x строками. столбцы: (A: сотрудник, B: пароль, C: электронная почта)

Приложение python должно получать вводимые пользователем данные («Имя сотрудника») и искать введенную строку в столбце A, если она найдена, затем отображать («пароль и адрес электронной почты») из столбцов B и C

Пример:

Данные файла Excel:

А, Б, В

сотрудник, пароль, адрес электронной почты

Джон Доу, 12345, john@doe.com

Джоханна Доу, 978765, johanna@doe.com

Пользовательский ввод: Джон Доу

имя сотрудника: john doe - пароль: 12345, электронная почта: john@doe.com

Также я хотел бы, чтобы приложение просило меня добавить новую запись, если имя сотрудника отсутствует в файле Excel.

Это код, который я написал до сих пор, я не могу продолжать писать остальную часть кода, так как я застрял в части данных поиска и отображения.

from openpyxl import *
wb = load_workbook('db.xlsx')
sheet = wb.get_sheet_by_name('QA')

q1 = raw_input('Enter Employee Name: ')
for i in range(1, sheet.max_row):
    if sheet.cell(row=row, column=0).value == q1:
        for j in range(i, sheet.max_column):
            print (sheet.cell(row=i, column=j).value)

Ваша помощь приветствуется.

Обновление: это рабочий код после изменения #if sheet.cell (row = row, column = 0) .value == q1: на if sheet.cell (row = row, column = 1) .value == q1: as Gordon13 предложил, спасибо

from openpyxl import *
wb = load_workbook('db.xlsx')
sheet = wb.get_sheet_by_name('QA')
while True:
    q1 = raw_input('Input: ')
    for row in range(1, sheet.max_row):
        if sheet.cell(row=row , column=1).value == str(q1):
            print sheet.cell(row=row, column=2).value
            print sheet.cell(row=row, column=3).value
1
Amr Sohil 24 Июл 2017 в 16:10
Не могли бы вы объяснить, в чем проблема
 – 
depperm
24 Июл 2017 в 16:36
Я ищу код для функции поиска
 – 
Amr Sohil
24 Июл 2017 в 16:37

1 ответ

Лучший ответ

Можете ли вы объяснить, что именно вы видите, когда запускаете свой код?

Я думаю, что вижу небольшую проблему с вашими индексами цикла, но я не могу быть уверен, если вы не опишете, что происходит

Это не проверено, но я думаю, что это должно быть ближе к тому, что вы хотите:

from openpyxl import *
wb = load_workbook('db.xlsx')
sheet = wb.get_sheet_by_name('QA')

q1 = raw_input('Enter Employee Name: ')
for i in range(1, sheet.max_row):
    # changed 'row' to i
    if sheet.cell(row=i, column=0).value == q1:
        # changed i to 1
        for j in range(1, sheet.max_column):
            print (sheet.cell(row=i, column=j).value)
0
Gordon13 24 Июл 2017 в 18:07