pythonpython-3.xpython-polars

Disable font colour formatting for negetive values in python Polars generated excel


I would like to disable automatic font colouring of negetive values in polars write_excel. Any tip?

import polars as pl
import xlsxwriter

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:
    df2.write_excel(workbook=workbook, worksheet='sheet1',
                    autofit=True, table_style=None, column_formats=None,
                    conditional_formats=False, float_precision=0, sparklines=None, formulas=None)

This is what it generates -

enter image description here


Solution

  • column_formats={cs.numeric():'General'} or column_formats={x:'[Black]' for x in df2.columns} will do the trick.

    import numpy as np
    import polars as pl
    import polars.selectors as cs
    import xlsxwriter
    
    df2 = pl.DataFrame(data=np.random.randint(-10, 10, 5*3).reshape(-1, 3), schema=['x', 'y', 'z'])
    
    with xlsxwriter.Workbook(r'C:\SUVOPAM_local\Try\_out_.xlsx') as workbook:
        df2.write_excel(workbook=workbook, worksheet='sheet1',
                        autofit=True, table_style=None,  dtype_formats=None,
                        column_formats={cs.numeric():'General'}, # column_formats={x:'[Black]' for x in df2.columns}
                        conditional_formats=False, float_precision=0, sparklines=None, formulas=None)
    

    Generates -

    enter image description here