在Excel中使用Python的xlsxwriterstring条件格式“等于”

我有相对较大的Excel电子表格,我正在应用条件格式。 但是,单元格的内容相对较短(最多3个字母)。 所以,我需要匹配一个string。 例如:'A'应该被格式化,但不包含'A'('ABC','BCA','BAC'等)。

我尝试了使用“文本”和“单元格”选项的不同选项,但是我失败了。 这是我的testing案例:

import xlsxwriter workbook = xlsxwriter.Workbook('conditional_format4.xlsx') worksheet1 = workbook.add_worksheet() format1 = workbook.add_format({'bg_color': '#FFC7CE', 'font_color': '#9C0006'}) data = [ ['ABC', 'BCA', 38, 30, 75, 48, 75, 66, 84, 86], [6, 24, 1, 84, 54, 62, 60, 3, 26, 59], [28, 79, 97, 13, 85, 93, 93, 22, 5, 14], [27, 'BAC', 40, 17, 18, 79, 90, 93, 29, 47], [88, 'ABC', 33, 23, 67, 1, 59, 79, 47, 36], [24, 'A', 20, 88, 29, 33, 38, 54, 54, 88], [6, 'BCA', 88, 28, 10, 26, 37, 7, 41, 48], [52, 78, 1, 96, 26, 45, 47, 33, 96, 36], [60, 54, 81, 66, 81, 90, 80, 93, 12, 55], [70, 5, 46, 14, 71, 19, 66, 36, 41, 21], ] for row, row_data in enumerate(data): worksheet1.write_row(row, 0, row_data) worksheet1.conditional_format('A1:J10', {'type': 'text', 'criteria': 'containing', 'value': 'A', 'format': format1}) workbook.close() 

所以,我只想匹配一个单元格。 我用尽了select/想法。 这似乎微不足道,但我得到了很多我的Excel文件不正确的错误。 希望有人find解决这个问题。

它是在Excel 2010中完成的(条件格式 – >突出显示单元格规则 – >等于:在文本框中键入A)。

以下XlsxWriter条件格式应该工作:

 worksheet1.conditional_format('A1:J10', {'type': 'cell', 'criteria': '==', 'value': '"A"', 'format': format1}) 

请注意,在Excel中,条件types应该是cell ,并且值应该是一个string(带引号)。

如果我理解正确,你希望Python匹配单个字符。 因此,例如,您只想匹配“A”,并在格式化之前拒绝“AB”和“AA”之类的内容。

为此,你需要匹配字符和长度。

 'A' in string and len('A') == len(string) 

然后,您可以将格式应用于符合该条件的格式。

如果你想使用xlswriter conditional_format,根据文档 ,你可以模仿等同于做:

 worksheet.conditional_format('B3:K12', {'type': 'cell', 'criteria': '==', 'value': '"A"', 'format': format2}) 

EDITED错误值(应该是@jmcnamara指出的string)