如何禁用Python Polars生成Excel时负数的字体颜色格式化
如何禁用Polars write_excel方法对负数自动设置字体颜色的功能?
Polars的write_excel方法默认会给数值类型的负数自动添加红色字体格式,即使你设置了column_formats=None也会生效。要禁用这个行为,你可以通过自定义xlsxwriter格式对象来覆盖默认的负数格式,具体操作如下:
- 先创建一个xlsxwriter格式,指定数值格式为你需要的样式(比如你代码里的整数格式
'0'),确保负数的显示规则和正数一致,不额外设置颜色 - 将这个格式通过
column_formats参数应用到所有数据列
修改后的代码示例:
import polars as pl import xlsxwriter import numpy as np # 原代码遗漏了numpy的导入,需补充 df2 = pl.DataFrame(data=np.random.randint(-10, 10, 5*3).reshape(-1, 3), schema=['x', 'y', 'z']) with xlsxwriter.Workbook(r'_out_.xlsx') as workbook: # 创建自定义格式:整数格式,负数不显示特殊颜色 num_format = workbook.add_format({'num_format': '0'}) # 用字典推导式快速为所有列绑定格式,避免逐个列名指定 column_formats = {col: num_format for col in df2.columns} df2.write_excel(workbook=workbook, worksheet='sheet1', autofit=True, table_style=None, column_formats=column_formats, conditional_formats=False, float_precision=0, sparklines=None, formulas=None)
这样生成的Excel文件中,负数会和正数使用相同的字体颜色,不会自动变成红色。
内容的提问来源于stack exchange,提问作者beta green
相关产品推荐
相关产品推荐

