Я играю с xlrd, и у меня возникают некоторые трудности. Основная идея того, что я пытаюсь сделать, - открыть файл Excel, прочитать содержимое первого столбца в массиве и использовать этот массив для поиска в другом файле Excel. Когда значение найдено, оно должно вернуть содержимое трех ячеек из второго файла Excel. мой код:xlrd lookup Значения Excel в другом файле Excel
import xlrd
import os.path
from docx import Document
document = Document()
registry = xlrd.open_workbook('/root/Desktop/registry.xlsx')
findings = xlrd.open_workbook('/root/Desktop/findings.xlsx')
findings_sheet = findings.sheet_by_index(0)
registry_sheet = registry.sheet_by_index(0)
num_rows = findings.nrows - 1
curr_row = 0
findings_array = []
while curr_row < num_rows:
row = findings.row(curr_row)
findings_array += row
curr_row += 1
for finding in findings_array:
for r in range(first_sheet.nrows):
cell_col1=first_sheet.cell(rowx=r,colx=0).value
if cell_col1 == finding:
print first_sheet.cell(r,3)
print first_sheet.cell(r,4)
print first_sheet.cell(r,5)
else:
print "Finding not found"
В настоящее время он не работает. Если я заменяю if cell_col1 == finding:
на if cell_col1 == "ABC":
, тогда условие работает, но оно выводит ячейки 5 раз, что является числом результатов в моем массиве.
Я знаю, что у меня есть проблемы в моем коде, но я не программист, и я немного застрял.
Я хотел бы изменить тип 'findings_array' в' set' и изменить имя на 'results' (даже для списка' array' не является хорошим суффиксом имени). – BlackJack
@BlackJack Я сделал, что вы предложили – sheh