Skip to content

Explicite default column width #131

@buhtz

Description

@buhtz

Different from pandas.to_excel() it seems to me that StyelFrame.to_excel() does explicit set the width of each column based on its values. I am not sure here it is just a hypothesis.

Please see the full code at the end of that report.

The excel result looks like this
image

I assume that column "B" was set to a default minimum with because there is much space before and after the values.
I also assume that column "C" was set to the with of its longest value (33123).
I assume that the with of headers are ignored.

Now I do a "auto fit column width" in Excel (in German "Spaltenbreite automatisch anpassen"):
image

The index column A is the only that was fit to the with of its values/contents.
Column B and C does not change. That is why I assume there an explicit width.

The default Excel behavior would be to set the width that it fit to the content/values of a column:
image

Even you format that table as a "table with header" in Excel the auto-fit function create this
image

#!/usr/bin/env python3
import os
import sys
import pathlib
import pandas
import styleframe
import styleframe.utils

print(styleframe._versions_)

df = pandas.DataFrame(
    data={
        'idx1': list('AABB'),
        'column with long caption': [1234, 345, 33123, 2],
        }
    )
print(df)

file_path = pathlib.Path.cwd() / 'test.xlsx'

default_style = styleframe.Styler(font_size=14)
sf = styleframe.StyleFrame(df, styler_obj=default_style)

sf.to_excel(file_path, index=True).save()

os.system(str(file_path))

Changing this would break the default behaviour of your users. I am aware of this.
But maybe there could be switch or something to avoid the setting of an explicit width.
IMHO better default behaviour would be to auto-fit the width.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions