Вставка данных по строкам вместо столбцов и 1 пустой строки после каждой записи

#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)