Я думаю, что эта задача будет проще с xlrd
.Однако, если вы хотите использовать openpyxl
, тогда предположим, что testcase_ID
находится в столбце A
, input_request
в столбце B
и request_change
в столбце C
, что-то вроде этого может быть тем, что вы есть.ищу:
import openpyxl as xl
#Opening xl file
wb = xl.load_workbook('PATH/TO/FILE.xlsx')
#Select your sheet (for this example I chose active sheet)
ws = wb.active
#Start row, where data begins
row = 2
testcase = '' #this is just so that you can enter while - loop
#Initialiazing list
final_list = []
#With each iteration we get the value of testcase, if the cell is empty
#tescase will be None, when that happens the while loop will stop
while testcase is not None:
#Getting cell value, from columns A, B and C
#Iterating through rows 2, 3, 4 ...
testcase = ws['A' + str(row)].value
in_request = ws['B' + str(row)].value
req_change = ws['C' + str(row)].value
#Making tuple
row_tuple = (testcase, in_request, req_change)
#Adding tuple to list
final_list.append(row_tuple)
#Going to next row
row += 1
#This is what you return, you don't want the last element
#because it is tuple of None's
print(final_list[:-1])
Если вы хотите сделать это с xlrd
, вот как я бы это сделал:
import xlrd
#Opening xl file
wb = xlrd.open_workbook('PATH/TO/FILE.xlsx')
#Select your sheet (for this example I chose first sheet)
#you can also choose by name or something else
ws = wb.sheet_by_index(0)
#Getting number of rows and columns
num_row = ws.nrows
num_col = ws.ncols
#Initializing list
final_list = []
#Iterating over number of rows
for i in range(1,num_row):
#list of row values
row_values = []
#Iterating over number of cols
for j in range(num_col):
row_values.append(ws.cell_value(i,j))
#Making tuple with row values
row_tuple = tuple(row_values)
#Adding tuple to list
final_list.append(row_tuple)
print(final_list)
Добавление xlrd
комментариев к спецификациям индекса в конце дляпростое чтение:
- Удаляется, если оператор, когда num_row равен 1, цикл for никогда не выполняется
- xlrd индексирует строки, начинающиеся с 0
- , для строки 2 мы хотим индекс1
- Столбцы также индексируются нулями (A = 0, B = 1, C = 2 ...)