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

使用xlsxwriter修改Excel工作表正文为Arial 9号字体问题求助

问题排查

首先你的代码存在3处低级拼写错误,会先触发运行报错:

  • 取工作表时名称不匹配:to_excel指定的表名是Pipeline_Details(带下划线),后续取表写的是Pipeline Details(带空格),会找不到对应工作表
  • 隐藏网格线的变量名拼写错误:worksheer.hide_gridlines(2) 应改为 worksheet.hide_gridlines(2)
  • 表头格式创建方法拼写错误:header_format = workbook_add.format 应改为 header_format = workbook.add_format

其次是正文格式不生效的核心原因:你仅定义了正文格式cell_format,但没有将该格式应用到任何正文单元格上,pandas调用to_excel写入正文时默认使用内置默认格式,不会自动关联你后续定义的格式。


解决方案

推荐直接修改工作簿全局默认字体,无需逐单元格设置,符合你修改默认字体的需求,修正后完整代码如下:

import pandas as pd
import xlsxwriter

# 初始化writer时指定xlsxwriter引擎
writer1 = pd.ExcelWriter('你的输出文件名.xlsx', engine='xlsxwriter')

# 写入数据
Pipeline_details.to_excel(writer1, 
                          sheet_name ='Pipeline_Details',
                          startrow=1,
                          startcol=0,
                          header=False,
                          index=False)

workbook = writer1.book
# 全局设置默认字体为Arial 9号,所有单元格默认生效
workbook.set_default_font(font_name='Arial', font_size=9)

worksheet = writer1.sheets['Pipeline_Details']
(max_row, max_col) = Pipeline_details.shape
worksheet.autofilter(0,0,max_row, max_col - 1)
worksheet.hide_gridlines(2)

# 表头单独加特殊格式(自动换行,其他属性已经继承全局默认的Arial 9号)
header_format = workbook.add_format({
    'bold': False,
    'text_wrap': True})

for col_num, value in enumerate(Pipeline_details.columns.values):
    worksheet.write(0, col_num, value, header_format)

writer1.save()

如果不需要全局修改,仅需要给当前表格正文加格式,可以在定义完cell_format后新增批量设置列格式的代码:

cell_format = workbook.add_format({'font_name': 'Arial', 'font_size': 9})
# 给所有列应用正文格式
worksheet.set_column(0, max_col-1, None, cell_format)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:48:02