#python #python-2.7 #openpyxl
#python #python-2.7 #openpyxl
Вопрос:
Вот мой код:
wb = Workbook()
dest_filename = 'book.xlsx'
th_list = ["this", "that", "what", "is", "this"]
ws1 = wb.active
ws1.title = 'what'
for row in range(1, 2):
for col in range(1, len(th_list)):
_ = ws1.cell(column=col, row=row, value="{0}".format(th_list[col].encode('utf-8')))
wb.save(filename = dest_filename)
После запуска файла py я получаю данные таким образом:
A B C D E
1 this that what is this
Пока я хочу, чтобы данные были такими:
A
1 this
2 that
3 what
4 is
5 this
а также вставьте 1 пустую строку между каждой строкой следующим образом:
A
1 this
2
3 that
4
5 what
6
7 is
8
9 this
Я пытаюсь изменить свой код, чтобы выполнить это требование. Я также опубликую свой код в качестве ответа, если найду решение.
РЕДАКТИРОВАТЬ: Хорошо, я успешно преобразовал данные из строки в столбец с изменением циклов for . Но по-прежнему не удается добавить пустые строки после каждой записи. Вот код:
wb = Workbook()
dest_filename = 'book.xlsx'
th_list = ["this", "that", "what", "is", "this"]
ws1 = wb.active
ws1.title = 'what'
for col in range(1, 2):
for row in range(1, len(th_list) 1):
_ = ws1.cell(column=col, row=row, value="{0}".format(th_list[row-1].encode('utf-8')))
wb.save(filename = dest_filename)
Ответ №1:
Почему вы пишете что-то настолько невероятно сложное?
for v in th_list:
ws.append([v]) # pad as necessary, never encode
ws.append() # blank row
Ответ №2:
Я сам нашел решение для обоих своих запросов. Вот оно:
wb = Workbook()
dest_filename = 'book.xlsx'
th_list = ["this", "that", "what", "is", "this"]
ws1 = wb.active
ws1.title = 'what'
for col in range(1, 2):
for row in range(1, len(th_list) 1):
_ = ws1.cell(column=col, row=(row*2)-1, value="{0}".format(th_list[row-1].encode('utf-8')))
wb.save(filename = dest_filename)