Применяется условное форматирование (без ошибок), но лист не обновляется, пока я не перехожу к «Редактировать правила» вручную - PullRequest
0 голосов
/ 08 ноября 2018

Применяется условное форматирование (без ошибок), но лист не обновляется, пока я не перейду к «Редактировать правила» вручную.

Я использую значение formula для параметра value. Формула верна. Сначала я проверил это, введя его в Excel; и это также не генерирует никаких ошибок.

ws.conditional_format(1, 0, total_rows, total_columns,
                      {'type'     : 'formula',
                       'criteria' : '=XOR(ISERR(FIND("text1",LOWER($F2))),ISERR(FIND("text2",LOWER($F2))))',
                       'format'   : format1})

Просто мне нужно перейти в «Управление правилами», затем отредактировать правило и затем нажать «ОК» в диалоговом окне «Редактировать правило», чтобы оно заработало. Я пытался переместить эту часть кода перед записью ячеек на лист, используя write_row, но это тоже не помогает.

Другие части кода, которые могут иметь отношение:

total_rows = len(data) - 1
total_columns = len(data[0]) - 1
format1 = wb.add_format({'bg_color': '#FFC7CE', 'font_color': '#9C0006'})

1 Ответ

0 голосов
/ 08 ноября 2018

Excel 2010 и более поздние добавили функции, которые не были определены в исходной спецификации файла.

Эти функции называются Microsoft как будущие функции. Примерами этих функций являются ACOT, CHISQ.DIST.RT, CONFIDENCE.NORM, STDEV.P, STDEV.S и WORKDAY.INTL. А также, в этом случае, XOR.

Чтобы заставить их работать, нужно добавить в формулу _xlfn.. Как это:

'criteria': '=_xlfn.XOR(ISERR(FIND("text1",LOWER($F2))),ISERR(FIND("text2",LOWER($F2))))', 

Префикс не отображается в Excel.

См. Следующий раздел документации XlsxWriter по работе с формулами .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...