隔行遮光

Shade Every Other Row

我想用灰色遮挡除第一个 row/header 以外的所有其他列。我通读了 XLSX Writer 的文档,但找不到任何示例,我还搜索了此处的标签,但找不到任何内容。

为什么不将其设置为条件格式?

http://xlsxwriter.readthedocs.org/example_conditional_format.html

你应该声明一个像 "if cells row number %2 == 0"

这样的条件

我想 post 详细了解我是如何做到这一点的,以及我是如何动态地做到这一点的。这有点老套,但我是 Python 的新手,我现在只需要它就可以工作。

xlsW = pd.ExcelWriter(finalReportFileName)
rptMatchingDoe.to_excel(xlsW,'Room Counts Not Matching',index=False)
workbook = xlsW.book
rptMatchingSheet = xlsW.sheets['Room Counts Not Matching']
formatShadeRows = workbook.add_format({'bg_color': '#a9c9ff',
                                       'font_color': 'black'})
rptMatchingSheet.conditional_format('A1:'+xlsAlpha[rptMatchingDoeColCount]+matchingCount,{'type': 'formula', 
                                                                                          'criteria': '=MOD(ROW(),2) = 0', 
                                                                                          'format': formatShadeRows})
xlsW.save()

xlsAlpha 是一个列表,其中包含我的报告可能包含的最大列数。我的前三列总是一致的,所以我只是将 rptMatchingDoeColCount 设置为 2,然后当我遍历列表以构建我的查询时,我增加了计数。 matchingCount 变量只是一个 fetchone() 结果,来自对我从数据库中提取的视图的 count(*) 查询。

最终我想我会写一个函数来替换分配给 xlsAlpha 的硬编码列表,这样它实际上可以是无限数量的列。

如果有人对我如何改进有任何建议,请随时分享。