python - 无法使用 python xlsxwriter 在 excel 中更改字体颜色
问题描述
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 错误。
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']]
解决方案
在 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()
输出:
推荐阅读
- javascript - ivy 支持 AOT + JIT 吗?
- flutter - 如何在颤动中显示firestore DocumentReference的数据
- c++ - 概念 TS 检查忽略私有访问修饰符
- c# - 避免使用 ASP.NET MVC(实体框架)在地址栏上显示 url
- regex - 来自 Spring Boot 的 MongoDB 正则表达式查询
- javascript - 如何将json数据转换成流程图
- oracle - 将触发器更改为插入后
- asp.net-mvc - MVC 弹出和回发
- c# - 从 xml 文档中删除特定子项
- selenium - 选择 Frame 关键字不适用于 Firefox 但适用于 Chrome