我想根据结果为Excel工作表的行/列上色(通过/失败),但无法这样做。
如果“数据”变量为“通过”,则颜色为绿色,否则为红色,
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
答案 0 :(得分:0)
我能够得到答案
ws [var1] .fill = redFill