Я записываю элементы столбцов Excel в списки.Поэтому мне нужно найти определенные значения в одном столбце и записать значения другого столбца, соответствующие им.В настоящее время это реализовано так:
import xlrd
excel_data_file = xlrd.open_workbook('./testbook.xlsx')
sheet = excel_data_file.sheet_by_index(0)
ku_ind_lst = sheet.col_values(0)
sys_name_lst = sheet.col_values(2)
for i in range(0, len(sys_name_lst)):
if sys_name_lst[i] == 'xxx' or sys_name_lst[i] == 'yyy' or sys_name_lst[i] == 'zzz':
b = sys_name_lst[i]
c = ku_ind_lst[i]
print(b)
print(c)
Я изменил код, добавив чтение данных с двух листов:
import xlrd
excel_data_file = xlrd.open_workbook('./test.xls')
sheet_count = excel_data_file.nsheets
print(sheet_count)
sheets = {}
for nsh in range (0,sheet_count):
sheet = excel_data_file.get_sheet(nsh)
sheets[sheet.name] = sheet
ku_ind_lst = sheets.col_values(0)
sys_name_lst = sheets.col_values(2)
for i in range(0, len(sys_name_lst)):
if sys_name_lst[i] == 'xxx' or sys_name_lst[i] == 'yyy' or sys_name_lst[i] == 'zzz':
b = sys_name_lst[i]
c = ku_ind_lst[i]
print(b)
print(c)
И я решил проверить, как это будет работать с xlsкоторый содержит два листа по 5000 строк каждый.Таким образом, появилась ошибка:
Файл "C: \ Program Files (x86) \ Python37-32 \ lib \ site-packages \ xlrd \ book.py", строка 699, в get_sheet поднять XLRDError («Невозможно загрузить листы после освобождения ресурсов.») Xlrd.biffh.XLRDError: Невозможно загрузить листы после освобождения ресурсов.
Итак, get_sheet
не подходит для моей задачи?Можно ли использовать sheet_by_index
для открытия нескольких листов из файла xls и как?