Python单元格颜色未在Excel工作表中更新

时间:2019-11-19 02:47:29

标签: excel python-3.x

我想根据结果为Excel工作表的行/列上色(通过/失败),但无法这样做。

Data Sheet

如果“数据”变量为“通过”,则颜色为绿色,否则为红色,

    def writeData(file,sheetName,rownum,columnno,data):
    redFill = PatternFill(start_color='FFFF0000', end_color='FFFF0000', fill_type='solid')
    workbook = openpyxl.load_workbook(file)
    ws = workbook.active
    #ws[cell(row=rownum,column=columnno)].fill
    sheet = workbook.get_sheet_by_name(sheetName)
    sheet.cell(row=rownum,column=columnno).value = data
    print(rownum,columnno)
    var = str(rownum)
    var1 = "E"+var
    ws['var1'].fill = redFill
    print(redFill)
    print("var1",var1)
    workbook.save(file)

如果我将直接列值作为ws ['E2']。fill = redFill传递,则可以正常工作,即可以为excel行/列上色, 但是如果通过ws ['var1']。fill = redFill传递则不起作用

我做错了什么?

下面是我正在运行的代码的输出

LoadAmountSlideX 34
LoadInterestSlideX 48
LoadTermSlideX -111
LoanEMI 1,74,984
1
2
3
LoanEMIElement 18,52,690
3 5
<openpyxl.styles.fills.PatternFill object>
Parameters:
patternType='solid', fgColor=<openpyxl.styles.colors.Color object>
Parameters:
rgb='FFFF0000', indexed=None, auto=None, theme=None, tint=0.0, type='rgb', bgColor=<openpyxl.styles.colors.Color object>
Parameters:
rgb='FFFF0000', indexed=None, auto=None, theme=None, tint=0.0, type='rgb'
var1 E3

Process finished with exit code 0

1 个答案:

答案 0 :(得分:0)

我能够得到答案

  

ws [var1] .fill = redFill