无法使用python xlsxwri更改excel中的字体颜色

2024-09-28 22:37:24 发布

您现在位置:Python中文网/ 问答频道 /正文

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})

我试图用python写一个excel文件。alldata是列表列表。问题是我想把数据中的文本颜色改成绿色和不匹配!红色,这是不可能的。上面列出的代码没有显示任何错误,但是当我打开excel文件时,它会要求我恢复以前的版本,因为新版本有xml错误。在

^{pr2}$


Tags: 文件版本format列表data错误cellexcel
1条回答
网友
1楼 · 发布于 2024-09-28 22:37:24

在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

相关问题 更多 >