You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用pandas导出多Excel工作表时如何自动适配列宽

解决方案

核心问题

  • 原代码列宽调整逻辑在分组循环外部,循环结束后变量index仅保留最后一个分组的取值,导致只有最后一个工作表完成列宽设置,其余工作表均未处理
  • 全局stacked_df计算的列宽无法精准适配每个分组内的实际内容长度

修改后代码

# 筛选Error值为1的行生成最终DataFrame
final_df = stacked_df[stacked_df.Error == 1]
# 初始化XlsxWriter引擎的Excel写入器
writer = pd.ExcelWriter(LOGNAME, engine='xlsxwriter')

# 按Service type列分组,每个分组写入单独工作表
for index, group_df in final_df.groupby("Service type"):
    sheet_name = str(index)
    group_df.to_excel(writer, sheet_name=sheet_name, index=False)
    # 对当前工作表逐列调整宽度
    for col_idx, column_name in enumerate(group_df.columns):
        # 计算列所需最大宽度:取列名长度、列内容最大长度的最大值
        max_len = max(
            group_df[column_name].astype(str).map(len).max(),
            len(column_name)
        )
        # 若表格含大量中文字符,可乘以1.2~1.5的系数适配宽度,取消下行注释即可
        # max_len = int(max_len * 1.3)
        # 设置当前列宽度
        writer.sheets[sheet_name].set_column(col_idx, col_idx, max_len)

# 保存并关闭写入器
writer.save()

优化说明

  • 列宽调整逻辑移入分组循环,确保所有工作表都完成列宽设置
  • 基于当前分组的实际内容计算列宽,适配精度更高
  • 预留中文字符宽度适配配置,可根据实际内容调整系数避免截断

内容的提问来源于stack exchange,提问作者miquiztli_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 22:45:02