openpyxl добавить вправо - PullRequest
       8

openpyxl добавить вправо

0 голосов
/ 20 сентября 2018

Я довольно новичок в openpyxl, и у меня возникла небольшая проблема

Я перебираю список и для каждого элемента добавляю заголовок и некоторые данные.Моя проблема в том, что для каждого элемента, который я делаю, я хочу добавить «одинаковые» данные справа, а не сверху вниз, как метод .append.

Не знаю, имеет ли это смысл.

пример

for agreement in agreements:
    n1 = wb.active

    n1.append([
        make_cell(n1, agreement.name, bold=True),
    ])

    n1.append([
        'Account Number',
        'Account Name',
        'Total DKK',
    ])

   for ....
       n1.append(....)

для каждого соглашения я хочу добавить «одинаковые» данные справа, а не вверх ногами.

как это сделать?

что я хочу ..

headline                headline                headline        
Account Number  Account Name    Total DKK       Account Number  Account Name    Total DKK       Account Number  Account Name    Total DKK

1 Ответ

0 голосов
/ 22 сентября 2018

Вопрос : ... добавить "одинаковые" данные справа, а не сверху вниз, как метод .append

Вы должны использовать ws.append(...) все равно.

Сначала вам понадобится Workbook Экземпляр:

from openpyxl import Workbook
wb = Workbook()

Не используйте n1 = wb.active внутри цикла for ....
Вы должныполучить только активную рабочую таблицу один раз .

for agreement in agreements:
    n1 = wb.active
ws = wb.active

Вы хотите добавить x Заголовок заСтрока вправо, поэтому вы не можете использовать .append(...).

    n1.append(['Account Number', 'Account Name', 'Total DKK',])

Перед тем, как .append(...) свои значения столбцов строк, вы должны создать список с ожидаемыми значениями.
Например:

HEADER = ['Account Number', 'Account Name','Total DKK']    
listOfColumnValues = []

# Extend listOfColumnValues with HEADER as many times you need
for _ in range(3):
    listOfColumnValues.extend(HEADER)

print("{}".format(listOfColumnValues))
ws.append(listOfColumnValues)

Выход :

['Account Number', 'Account Name', 'Total DKK', 'Account Number', 'Account Name', 'Total DKK', 'Account Number', 'Account Name', 'Total DKK']

Протестировано с Python: 3.4.2 - openpyxl: 2.4.1 - LibreOffice: 4.3.3.2

...