Pandas Style以xlsxwriter为引擎导出Excel时多样式返回报错问题
问题原因
- 拼接返回的CSS样式字符串存在语法错误:Pandas Style对接xlsxwriter引擎时,会严格按照CSS标准解析返回的样式规则,同个单元格的多条样式属性必须使用**英文分号
;**作为分隔符。你的报错代码中错误使用逗号分隔font-size和background-color两个属性,导致引擎解析规则失败抛出错误。 - 单一样式属性可以正常运行是因为没有后续待解析内容,引擎的容错机制可以识别单条规则,一旦追加第二条属性就会触发分隔符不合法的问题。
修复方案
直接将两个样式属性之间的逗号替换为英文分号即可,修正后的代码如下:
""" Format cells in Excel file and output to screen if on windows""" color = 'red' if '>' in str(val) else 'lightgray' font_size = '45px' # 多样式用英文分号分隔 return f'font-size: {font_size}; background-color: {color}'
可选优化
如果运行时遇到字体大小解析不符合预期的问题,可以去掉font-size值里的px单位,直接传数值,或者使用Excel原生的磅单位pt(比如font_size = '45pt'),进一步适配xlsxwriter的解析规则,避免单位兼容问题。
内容的提问来源于stack exchange,提问作者Dini
相关产品推荐
相关产品推荐

