如何使用XlsxWriter设置Excel某一行左对齐?
问题:使用XlsxWriter设置Excel首行左对齐不生效的解决方案
你的代码之所以没生效,核心原因是Pandas的to_excel方法在写入DataFrame时,会自动给表头单元格应用默认格式,这个格式会覆盖你后续通过set_row设置的行格式。
要解决这个问题,我们可以让Pandas跳过表头的写入,手动添加表头并应用自定义格式,具体代码如下:
import pandas as pd from pandas import ExcelWriter # 你的DataFrame数据 stats = pd.DataFrame(...) # 初始化ExcelWriter,指定使用xlsxwriter引擎 xl_writer = ExcelWriter(r'U:\temp\test.xlsx', engine='xlsxwriter') workbook = xl_writer.book stats_sheet = workbook.add_worksheet('Stats') # 创建左对齐的表头格式 format_header = workbook.add_format({'align': 'left'}) # 写入DataFrame数据,跳过表头(startrow=1)且不自动生成表头(header=False) stats.to_excel(xl_writer, sheet_name='Stats', startrow=1, header=False) # 手动遍历表头,写入首行并应用格式 for col_idx, header_text in enumerate(stats.columns): stats_sheet.write(0, col_idx, header_text, format_header) # 保存并关闭文件 xl_writer.close()
另外补充两个小细节:
- 必须确保
ExcelWriter使用的是xlsxwriter引擎,这是代码生效的前提; - 如果需要同时设置行高,可以在
set_row里补充参数,比如stats_sheet.set_row(0, 20, format_header)来设置首行高度为20并应用格式。
内容的提问来源于stack exchange,提问作者rhaskett
相关产品推荐
相关产品推荐

