Для этого я использовал словарь для упорядочивания информации.
690205-->['AAH690205', 'AHH690205', 'LI690205', 'TDX690205']
690206-->['AAH690206', 'AHH690206', 'LI690206', 'TAHH690206', 'THH690206', 'TI690206', 'TNHH690206']
Числа перед стрелками используются как key
в каждом элементе словаря:
69020
690206
Числа в каждом списке сохраняются как value
каждого key
в словаре. Чтобы объяснить это, вот как выглядит мой словарь:
columns = {
690205 : ['AAH690205', 'AHH690205', 'LI690205', 'TDX690205'],
690206 : ['AAH690206', 'AHH690206', 'LI690206', 'TAHH690206', 'THH690206', 'TI690206', 'TNHH690206'],
}
Чтобы записать каждый key
в нужное место, я использовал переменную, которая будет установлена на длину value
предыдущий key
. values
было гораздо проще написать, поскольку мне просто нужно было сохранить их в list
и выполнить итерацию по этому list
.
import xlwt
from xlwt import Workbook
wb = Workbook()
sheet = wb.add_sheet('Sheet 1', cell_overwrite_ok=True)
# write columns that will always be there
sheet.write(0, 0, 'Column 1')
sheet.write(0, 1, 'Column 2')
columns = {
690205 : ['AAH690205', 'AHH690205', 'LI690205', 'TDX690205'],
690206 : ['AAH690206', 'AHH690206', 'LI690206', 'TAHH690206', 'THH690206', 'TI690206', 'TNHH690206'],
}
# key_list is used to store each key in order
key_list = []
for key in columns:
key_list.append(key)
# key_index needs to start at one to prevent overriding of the column names (Column 1 and Column 2)
# key_index will be used to place each key in their correct spot
key_index = 1
for key in key_list:
# writes the key at the correct key_index
sheet.write(key_index, 0, key)
# gets the length of the value for the key
key_value_length = len(columns[key])
# adds key_value_length to key_index to put the next key at the correct place
key_index += key_value_length
# values_list is used to store all of the values of each key in order
value_list = []
for values in columns.values():
for value in values:
value_list.append(value)
# getting index number of the value in the value_list
index = value_list.index(value)
# have to add one to the index because the indexes for the values will start at 1, not 0. This prevents overriding of the cell 'Column 2'
sheet.write(index+1 , 1 ,value)
wb.save('examplesheet.xls')
Выход: