每隔一行遮阴

时间:2015-12-04 13:59:17

标签: python python-2.7 pandas xlsxwriter

我希望用灰色除去第一行/标题之外的所有其他列。我阅读了XLSX Writer的文档,但无法找到任何示例,我也在这里搜索了标签,找不到任何内容。

2 个答案:

答案 0 :(得分:2)

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

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

你应该声明一个条件,如“if cells row number%2 == 0”

答案 1 :(得分:0)

我想发布有关我如何执行此操作的详细信息,以及我如何动态执行此操作。它有点像hacky,但我是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变量只是来自数据库中的视图上的count(*)查询的fetchone()结果。

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

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