如何在xlsxwriter

时间:2016-06-21 08:20:22

标签: python excel xlsxwriter

根据此示例(http://xlsxwriter.readthedocs.io/working_with_conditional_formats.html),您可以在列上使用色阶。

文档中的示例:

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 个答案:

答案 0 :(得分: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