Критерий «содержащий» связан с типом «текст», а не «ячейка».
Если вы измените это, ваша программа будет работать так, как ожидается.Вот пример:
import pandas as pd
final = pd.DataFrame({'Data': ['fox red', 'red fox', 'fox red', 'red fox']})
item = 'foo'
writer = pd.ExcelWriter('%s.xlsx'% item, engine='xlsxwriter')
workbook = writer.book
format1 = workbook.add_format({'bg_color': '#FFC7CE',
'font_color': '#9C0006'})
final.to_excel(writer, '%s.xlsx' % item)
worksheet = writer.sheets['%s.xlsx' % item]
worksheet.conditional_format('A1:CG350', {'type': 'text',
'criteria': 'containing',
'value': 'X ',
'format': format1})
writer.save()
Вывод:
