通常,您希望列的宽度比列中最长的字符串的大小大一些。xlsxwriter列的1个单位的with大约等于一个字符的宽度。因此,您可以通过将每列设置为该列中的最大字符数来模拟自动调整。
例如,在处理pandas数据框和xlsxwriter时,我倾向于使用以下代码。
它首先找到索引的最大宽度,该宽度始终是熊猫对excel渲染的数据框的左列。然后,它返回所有值的最大值和左向右移动的其余各列的列名。
对于您正在使用的任何数据,使此代码适应起来都不应该太困难。
def get_col_widths(dataframe): # First we find the maximum length of the index column idx_max = max([len(str(s)) for s in dataframe.index.values] + [len(str(dataframe.index.name))]) # Then, we concatenate this to the max of the lengths of column name and its values for each column, left to right return [idx_max] + [max([len(str(s)) for s in dataframe[col].values] + [len(col)]) for col in dataframe.columns]for i, width in enumerate(get_col_widths(dataframe)): worksheet.set_column(i, i, width)



