我被要求生成一些Excel报表。我目前使用pandas的数据量很大,所以自然我想使用pandas.ExcelWriter方法来生成这些报告。但是固定的列宽是个问题。
到目前为止我掌握的代码已经足够简单了。假设我有一个名为“df”的数据帧:
writer = pd.ExcelWriter(excel_file_path, engine='openpyxl')
df.to_excel(writer, sheet_name="Summary")
我查看了pandas代码,没有看到任何设置列宽的选项。宇宙中有没有一个诀窍可以让列自动调整到数据上?或者有什么我可以在事后对xlsx文件调整列宽?
(我正在使用OpenPyXL库,并生成.xlsx文件—如果这有什么不同的话。)
谢谢你。
我发布这篇文章是因为我遇到了同一个问题,发现Xlsxwriter和pandas的官方文档仍然将此功能列为不受支持。我想出了一个解决办法,解决了我的问题。我基本上只是遍历每一列并使用worksheet.set_column设置列宽==该列内容的最大长度。
不过,有一点很重要。此解决方案不适合列标题,只适合列值。不过,如果您需要调整标题,那么这应该是一个简单的更改。希望这对某人有帮助:)
受到user6178746's answer的启发,我有以下几点:
现在可能没有自动的方法,但是当您使用openpyxl时,下面一行(改编自用户Bufke对how to do in manually的另一个回答)允许您指定一个sane值(字符宽度):
相关问题 更多 >
编程相关推荐