Заполните строки Excel цветом в openpyxl Python - PullRequest
0 голосов
/ 15 мая 2018

Как заполнить строки цветом в openpyxl, если номер строки для заполнения заранее неизвестен? Это строки заголовков, которые идут в начале разделов неизвестного количества строк данных, например ::100100

from openpyxl import load_workbook, Workbook
from openpyxl.styles import PatternFill
import random
wb = Workbook()
ws = wb.active

for section in range(10):
    header_row = ('col1', 'col2')
    ws.append(header_row)   # Wanted to fill this
    random_amount_rows = [('bar', 'foo') for i in range(1, random.randrange(2,10))]
    for datarow in random_amount_rows: 
        ws.append(datarow)

В обычных случаях, когда номер строки известен, его можно заполнить следующим образом:

fill = PatternFill("solid", fgColor="DDDDDD")
for cell in list(ws.rows)[rownumber]:
    cell.fill = fill

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Работает следующим образом в режиме только для записи. Спасибо, Чарли Кларк.

from openpyxl.worksheet.write_only import WriteOnlyCell
fill = PatternFill("solid", fgColor="DDDDDD")   

for section in sections:
    row_to_fill_texts = ('col1', 'col2')
    row = []
    for h in row_to_fill_texts:
        cell = WriteOnlyCell(ws, value=h)
        cell.fill = fill
        row.append(cell)
    ws.append(row)
    # adding other lines
0 голосов
/ 15 мая 2018

Вы можете добавлять ячейки вместо значений и, таким образом, применять форматирование. См. Раздел «Режим только для записи» в документации. http://openpyxl.readthedocs.io/en/latest/optimized.html#write-only-mode

...