慕神8447489
几乎每次我在 XlsxWriter 中回答有关条件格式的问题时,我都会说同样的话:首先弄清楚如何在 Excel 中进行操作,然后将其应用到 XlsxWriter。将空白单元格视为零的条件格式问题似乎是 Excel 中的一个已知问题/功能。我遵循了这篇文章中有关该问题的方法之一的建议,并为空白单元格设置了额外的默认格式。我还需要设置stop_if_true属性。这是一个工作示例:import xlsxwriterworkbook = xlsxwriter.Workbook('conditional_format.xlsx')worksheet = workbook.add_worksheet()# Add a format. Light red fill with dark red text.format1 = workbook.add_format({'bg_color': '#FFC7CE', 'font_color': '#9C0006'})# Add a format. Green fill with dark green text.format2 = workbook.add_format({'bg_color': '#C6EFCE', 'font_color': '#006100'})# Add a default format.format3 = workbook.add_format()# Some sample data to run the conditional formatting against.data = [ [34, -75, None, 75, 66, 84, 86], [6, 24, 1, 60, 3, 26, 59], [None, 79, 97, -13, 22, 5, 14], [-27, -71, None, 17, 18, 0, 47], [88, 25, -33, 23, 67, "", 36], ['', 100, 20, 88, 54, 54, 88], [6, 57, '', 28, 10, 41, 48], [52, 78, -1, 96, 26, 0, ""], [60, -54, 81, None, 81, 90, 55], [70, 5, 46, 14, 71, 41, 21],]for row, row_data in enumerate(data): worksheet.write_row(row + 2, 1, row_data)worksheet.conditional_format('B3:H12', {'type': 'blanks', 'stop_if_true': True, 'format': format3})worksheet.conditional_format('B3:H12', {'type': 'cell', 'criteria': 'between', 'minimum': 0, 'maximum': 100, 'format': format1})worksheet.conditional_format('B3:H12', {'type': 'cell', 'criteria': '<', 'value': 0, 'format': format2})workbook.close()输出: