xlsxwriter:"inf" 值如何不着色?
xlsxwriter: how "inf" value can be uncolored?
使用 python 包 "xlsxwriter",我想突出显示以下条件范围内的单元格;
值 > 1 或值 <-1
但是,某些单元格具有 -inf/inf 值,并且它也为它们填充颜色(黄色)。有什么方法可以取消突出显示它们吗?
我试过 "conditional_format" 函数来取消它们的颜色,但它不起作用。
output example
format1 = workbook.add_format({'bg_color':'#FFBF00'}) #yellow
format2 = workbook.add_format({'bg_color':'#2E64FE'}) #blue
format3 = workbook.add_format({'bg_color':'#FFFFFF'}) #white
c_fold=[data.columns.get_loc(col) for col in data.columns if col.startswith("fold")]
c_fold.sort()
l=len(data)+1
worksheet.conditional_format(1,c_fold[0],l,c_fold[-1], {'type':'cell',
'criteria' : '>',
'value':1,
'format':format1,
})
worksheet.conditional_format(1,c_fold[0],l,c_fold[-1], {'type':'cell',
'criteria' : '<',
'value':-1,
'format':format2,
})
worksheet.conditional_format(1,c_fold[0],l,c_fold[-1], {'type':'text',
'criteria' : 'begins with',
'value':"-inf",
'format':format3,
})
提前致谢
这会解决
worksheet.conditional_format(1,c_fold[0],l,c_fold[-1], {'type':'text',
'criteria' : 'containing',
'value':"-inf",
'format':format3,
})
在很多情况下,问题 "how do I get this to work with XlsxWriter" 的答案与问题 "how do I get this to work with Excel" 的答案相同。
如果您尝试 Excel 中的示例,您会发现您得到与 XlsxWriter 示例相同的结果。 >
条件适用于 Excel 中的 -inf
,因此它突出显示为浅橙色。以下 containing
条件也匹配的事实不会覆盖第一个匹配条件,因为 Excel 按照用户提供它们的顺序应用它们。
Excel 和 XlsxWriter 中的解决方案是更改应用规则的顺序,如下所示:
import xlsxwriter
workbook = xlsxwriter.Workbook('conditional_format.xlsx')
worksheet1 = workbook.add_worksheet()
# Add some formats to use in the conditional formats.
format1 = workbook.add_format({'bg_color': '#FFBF00'})
format2 = workbook.add_format({'bg_color': '#2E64FE'})
format3 = workbook.add_format({'bg_color': '#FFFFFF'})
# Write some sample data.
worksheet1.write('A1', 2)
worksheet1.write('A2', '-inf')
worksheet1.write('A3', -2)
# Write a conditional formats over the same range.
worksheet1.conditional_format('A1:A3', {'type': 'text',
'criteria': 'begins with',
'value': "-inf",
'format': format3})
worksheet1.conditional_format('A1:A3', {'type': 'cell',
'criteria': '>',
'value': 1,
'format': format1})
worksheet1.conditional_format('A1:A3', {'type': 'cell',
'criteria': '<',
'value': 1,
'format': format2})
workbook.close()
输出:
使用 python 包 "xlsxwriter",我想突出显示以下条件范围内的单元格; 值 > 1 或值 <-1 但是,某些单元格具有 -inf/inf 值,并且它也为它们填充颜色(黄色)。有什么方法可以取消突出显示它们吗? 我试过 "conditional_format" 函数来取消它们的颜色,但它不起作用。 output example
format1 = workbook.add_format({'bg_color':'#FFBF00'}) #yellow
format2 = workbook.add_format({'bg_color':'#2E64FE'}) #blue
format3 = workbook.add_format({'bg_color':'#FFFFFF'}) #white
c_fold=[data.columns.get_loc(col) for col in data.columns if col.startswith("fold")]
c_fold.sort()
l=len(data)+1
worksheet.conditional_format(1,c_fold[0],l,c_fold[-1], {'type':'cell',
'criteria' : '>',
'value':1,
'format':format1,
})
worksheet.conditional_format(1,c_fold[0],l,c_fold[-1], {'type':'cell',
'criteria' : '<',
'value':-1,
'format':format2,
})
worksheet.conditional_format(1,c_fold[0],l,c_fold[-1], {'type':'text',
'criteria' : 'begins with',
'value':"-inf",
'format':format3,
})
提前致谢
这会解决
worksheet.conditional_format(1,c_fold[0],l,c_fold[-1], {'type':'text',
'criteria' : 'containing',
'value':"-inf",
'format':format3,
})
在很多情况下,问题 "how do I get this to work with XlsxWriter" 的答案与问题 "how do I get this to work with Excel" 的答案相同。
如果您尝试 Excel 中的示例,您会发现您得到与 XlsxWriter 示例相同的结果。 >
条件适用于 Excel 中的 -inf
,因此它突出显示为浅橙色。以下 containing
条件也匹配的事实不会覆盖第一个匹配条件,因为 Excel 按照用户提供它们的顺序应用它们。
Excel 和 XlsxWriter 中的解决方案是更改应用规则的顺序,如下所示:
import xlsxwriter
workbook = xlsxwriter.Workbook('conditional_format.xlsx')
worksheet1 = workbook.add_worksheet()
# Add some formats to use in the conditional formats.
format1 = workbook.add_format({'bg_color': '#FFBF00'})
format2 = workbook.add_format({'bg_color': '#2E64FE'})
format3 = workbook.add_format({'bg_color': '#FFFFFF'})
# Write some sample data.
worksheet1.write('A1', 2)
worksheet1.write('A2', '-inf')
worksheet1.write('A3', -2)
# Write a conditional formats over the same range.
worksheet1.conditional_format('A1:A3', {'type': 'text',
'criteria': 'begins with',
'value': "-inf",
'format': format3})
worksheet1.conditional_format('A1:A3', {'type': 'cell',
'criteria': '>',
'value': 1,
'format': format1})
worksheet1.conditional_format('A1:A3', {'type': 'cell',
'criteria': '<',
'value': 1,
'format': format2})
workbook.close()
输出: