You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用XlsxWriter导出pandas DataFrame时如何冻结首行与首列?

用XlsxWriter导出Pandas DataFrame时冻结首行和首列的实现方法

当然可以!这是处理大表格时超实用的需求,XlsxWriter作为pandas支持的Excel写入引擎,完全能帮你实现冻结首行和首列的功能,下面是具体操作步骤和代码示例:

核心实现逻辑

XlsxWriter提供了freeze_panes()方法,通过指定冻结的行/列索引(从0开始计数)就能固定目标区域。要同时冻结首行和首列,需要设置参数为(1, 1)——这个参数的含义是:冻结第1行以上的所有行(也就是索引为0的首行)和第1列以左的所有列(也就是索引为0的首列)

完整代码示例

import pandas as pd

# 生成测试用的大DataFrame(模拟你的海量数据)
data = {f"列{i}": range(100) for i in range(20)}
df = pd.DataFrame(data)

# 使用XlsxWriter作为引擎创建Excel写入对象
with pd.ExcelWriter("冻结首行首列.xlsx", engine="xlsxwriter") as writer:
    # 将DataFrame导出到Excel的Sheet1中(关闭行索引避免干扰)
    df.to_excel(writer, sheet_name="Sheet1", index=False)
    
    # 获取对应的worksheet操作对象
    worksheet = writer.sheets["Sheet1"]
    
    # 执行冻结操作:固定首行和首列
    worksheet.freeze_panes(1, 1)

额外补充说明

  • 若只需冻结首行,将参数改为(1, 0)即可;仅冻结首列则用(0, 1)
  • 如果你的DataFrame需要保留行索引,去掉index=False即可,冻结逻辑不受影响
  • 打开导出的Excel文件后,滚动表格时首行和首列会始终固定在视图顶部和左侧,完美适配大表格浏览场景

内容的提问来源于stack exchange,提问作者Krzysztof Słowiński

火山引擎 最新活动