2016-06-21 2 views
1

В соответствии с этим примером (http://xlsxwriter.readthedocs.io/working_with_conditional_formats.html) вы можете использовать цветовые шкалы на столбцах.Как использовать цветовую шкалу для всего столбца в xlsxwriter

пример из документации:

caption = 'Examples of color scales and data bars. Default colors.' 

data = range(1, 13) 
worksheet7.write('A1', caption) 
worksheet7.write('B2', "3 Color Scale") 

for row, row_data in enumerate(data): 
    worksheet7.write(row + 2, 1, row_data) 

worksheet7.conditional_format('B3:B14', {'type': '3_color_scale'}) 

Вы можете видеть, что форматирование применяется к определенному диапазону столбца B от 1 до 14. Я хочу, чтобы применить формат для всего столбца B, независимо от его длина.

Когда я делаю это:

caption = 'Examples of color scales and data bars. Default colors.' 

data = range(1, 13) 
worksheet7.write('A1', caption) 
worksheet7.write('B2', "3 Color Scale") 

for row, row_data in enumerate(data): 
    worksheet7.write(row + 2, 1, row_data) 

worksheet7.conditional_format('B:B', {'type': '3_color_scale'}) 
# or this worksheet7.conditional_format('$B:$B', {'type': '3_color_scale'}) 

Я получаю следующее сообщение об ошибке:

File "build\bdist.win-amd64\egg\xlsxwriter\worksheet.py", line 85, in cell_wrapper 
    File "build\bdist.win-amd64\egg\xlsxwriter\utility.py", line 108, in xl_cell_to_rowcol 
AttributeError: 'NoneType' object has no attribute 'group' 

Что такое правильный способ сделать это?

ответ

1

В общем случае в XlsxWriter вы можете установить диапазон 2D для максимального значения столбцов, чтобы получить диапазон стиля Col:Col. Это также (как правило) то, что происходит внутри Excel.

Так должно работать в вашем случае:

worksheet7.conditional_format('B1:B1048576', {'type': '3_color_scale'}) 

# Or with row, col notation: 
worksheet7.conditional_format(1, 0, 1048575, 1, {'type': '2_color_scale'}) 

В Excel диапазон будет отображаться как B:B.

+0

спасибо, это влияет на производительность в любом случае? возможно, генерация excel медленнее? –

+1

Это не влияет на производительность XlsxWriter, и генерация файлов не медленнее. – jmcnamara

 Смежные вопросы

  • Нет связанных вопросов^_^