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