Невозможно изменить цвет шрифта в Excel, используя python xlsxwriter - PullRequest
0 голосов
/ 23 мая 2018
workb = xlsxwriter.Workbook('Newexcel1.xlsx')
worksheet1 = workb.add_worksheet("Sheet 1")

for row, row_data in enumerate(alldata):
    worksheet1.write_row(row + 1, 1, row_data)

cell_format.set_font_color('vbRed')


worksheet1.conditional_format('C2:C7', {'type':     'cell',
                                    'criteria': '==',
                                    'value': 'Data Matched!',
                                    'format': cell_format})

Я пытаюсь записать в файл Excel, используя python. alldata - это список списков.Проблема в том, что я хочу изменить цвет текста в Data Matched на зеленый и Not Matched!на красный, чего не происходит.Приведенный выше код не отображает никаких ошибок, но когда я открываю файл Excel, он просит меня восстановить предыдущую версию, так как новая имеет ошибку XML.

alldata =     [['My Total', 'Data Matched!', '$824,499,658', '$824,499,658'], ['Second Total', 'Data Matched!', '$824,532,682.20', '$824,532,682.20'], ['Featured Articles', 'Data Matched!', '$391,153,610.55', '$391,153,610.55'], ['Ads Revenue', 'Data Not Matched!', '$825,513,740.17', '$825,582,419.92'], ['Company 1 Revenue', 'Data Not Matched!', '$824,765,286.03', '$824,833,965.78'], ['Company 2 Revenue', 'Data Not Matched!', '$176,767,751.61', '$239,939,801.89']]

1 Ответ

0 голосов
/ 23 мая 2018

При использовании условного формата в XlsxWriter лучше всего сначала выяснить, что вы хотите сделать в Excel, а затем перенести его в XlsxWriter.

В этом случае Excel не поддерживает равенство ячеек сстрока.Вместо этого вы должны использовать «текстовое» условие (или, возможно, формулу).

Вот упрощенная версия вашего кода, которая исправляет несколько незначительных проблем и делает то, что вы хотите:

import xlsxwriter

alldata = [['My Total', 'Data Matched!', '$824,499', '$824,499'],
           ['Second Total', 'Data Matched!', '$824,532', '$824,532'],
           ['Featured Articles', 'Data Matched!', '$391,153', '$391,610'],
           ['Ads Revenue', 'Data Not Matched!', '$825,513', '$825,492'],
           ['Company 1 Revenue', 'Data Not Matched!', '$824,263', '$824,965'],
           ['Company 2 Revenue', 'Data Not Matched!', '$176,711', '$239,801']]

workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()

worksheet.set_column('C:C', 14)

cell_format = workbook.add_format()
cell_format.set_font_color('red')

for row, row_data in enumerate(alldata):
    worksheet.write_row(row + 1, 1, row_data)

worksheet.conditional_format('C2:C7', {'type': 'text',
                                       'criteria': 'begins with',
                                       'value': 'Data Matched!',
                                       'format': cell_format})

workbook.close()

Вывод:

enter image description here

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