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

xlsxwriter导出Excel时第一列无法左对齐问题求助

问题根因

Pandas调用to_excel写入数据时,会为所有单元格自动添加默认的单元格格式,单元格级别的格式优先级高于set_column设置的列级格式,因此你配置的A列左对齐会被覆盖。而表头是你手动调用worksheet.write写入的,直接使用了自定义格式,不受pandas默认格式影响,所以可以正常生效。

另外补充一个容易踩的坑:你当前代码中df.to_excel没有设置index=False,默认会把Pandas的行索引输出到A列,你自己的数据集第一列实际对应Excel的B列,如果你要对齐的是自有数据的第一列,列范围设置成A:A本身就是错误的。

解决方案

方案1:不需要保留Pandas行索引(推荐)

修改后完整代码如下:

def export_to_xlsx(date):
    global df
    ## CREATE PD DATAFRAME
    all_mp_dict = scraper(date)
    df = pd.DataFrame(all_mp_dict)

    ## WORKSHEET FORMATTING (TOP ROW - YELLOW BG COLOR)
    workbook_loc = './mp_excel/mp_data_'+date+'.xlsx'
    writer = pd.ExcelWriter(workbook_loc, engine='xlsxwriter')
    # 新增index=False,不输出行索引,数据第一列对应Excel A列
    df.to_excel(writer, sheet_name=date+'_raw', index=False)

    workbook = writer.book
    worksheet = writer.sheets[date+'_raw']

    header_format = workbook.add_format({
        'bold': True,
        'text_wrap': True,
        'valign': 'top',
        'fg_color': '#FFFF00',
        'border': 1})

    # 去掉+1,因为没有索引列,表头从A列开始
    for col_num, value in enumerate(df.columns.values):
        worksheet.write(0, col_num, value, header_format)

    ## WORKSHEET FORMATTING (FIRST COLUMN - ALIGN LEFT)
    a_format = workbook.add_format()
    a_format.set_align('left')

    # 遍历第一列所有数据行,手动写入带对齐格式的值,覆盖pandas默认格式
    for row_num in range(1, len(df)+1):
        cell_value = df.iloc[row_num-1, 0]
        worksheet.write(row_num, 0, cell_value, a_format)
    # 单独设置列宽
    worksheet.set_column('A:A', 100)

    ## TO_EXCEL
    writer.close()

方案2:需要保留Pandas行索引

如果需要保留A列的行索引,只需要对齐A列的索引值,修改第一列格式部分的代码即可:

## WORKSHEET FORMATTING (FIRST COLUMN - ALIGN LEFT)
a_format = workbook.add_format()
a_format.set_align('left')

# 遍历A列所有索引行,手动写入带对齐格式的索引值
for row_num in range(1, len(df)+1):
    cell_value = df.index[row_num-1]
    worksheet.write(row_num, 0, cell_value, a_format)
# 单独设置列宽
worksheet.set_column('A:A', 100)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:54:09