openpyxl - запись элементов последовательности в строку таблицы

Есть список данных:

data = ['one', 'two', 'thr', 'fou', 'fiv']

Как подставить данные в первую ячейку столбца:

A B C D E
1 one two thr fou fiv
2

Нужно, чтобы код работал со списком любого размера, т.е. без проблем переходил на столбцы AA, AB и т.д.


Ответы (1 шт):

Автор решения: AnnaBazueva

Метод append():

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

data = ['one', 'two', 'thr', 'fou', 'fiv']

ws.append(data)

wb.save("example.xlsx")

для вставки последовательности в последнюю строку таблицы.


Если надо вставить в определённую строчку, то передавать координаты ячейки в
Метод cell():

for col_num, value in enumerate(data, start=1):
          # row фиксирован, смещаемся по column 
    ws.cell(row=1, column=col_num, value=value)

т.е. здесь используются индексы столбцов, а не литеральное представление.


Индексы и их литеральное представление:

from openpyxl.utils import column_index_from_string, get_column_letter

# Буквенное представление столбца
column_letter = 'AA'

# Получаем числовой индекс столбца
column_index = column_index_from_string(column_letter)

print(column_index)  # Вывод: 27

# Индекс столбца
column_index = 27  # Например, для столбца 'AA'

# Получаем буквенное представление столбца
column_letter = get_column_letter(column_index)

print(column_letter)  # Вывод: AA
→ Ссылка