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

使用pandas保存DataFrame至Excel时遇AttributeError:XlsxWriter无save属性

问题

我尝试使用pandas将DataFrame中的数据保存至Excel文件,编写了如下代码:

import pandas as pd
import xlsxwriter
data = {'Name': ['John', 'Jane', 'Adam'], 'Age': [25, 30, 35], 'Gender': ['M', 'F', 'M']}
df = pd.DataFrame(data)

writer = pd.ExcelWriter('output.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')

workbook = writer.book
worksheet = writer.sheets['Sheet1']

# Example: Adding a chart
chart = workbook.add_chart({'type': 'line'})
chart.add_series({'values': '=Sheet1.$B$2:$B$4'})
worksheet.insert_chart('D2', chart)
writer.save()

但运行时出现如下错误:

writer.save()
    ^^^^^^^^^^^
AttributeError: 'XlsxWriter' object has no attribute 'save'. Did you mean: '_save'?

解决方法

错误原因是新版pandas中,pd.ExcelWriter搭配xlsxwriter引擎时,save()方法已被弃用,可通过以下两种方式解决:

方法1:使用上下文管理器(推荐)

用with语句包裹pd.ExcelWriter,程序会自动完成文件的保存与关闭,无需手动调用方法:

import pandas as pd
import xlsxwriter
data = {'Name': ['John', 'Jane', 'Adam'], 'Age': [25, 30, 35], 'Gender': ['M', 'F', 'M']}
df = pd.DataFrame(data)

with pd.ExcelWriter('output.xlsx', engine='xlsxwriter') as writer:
    df.to_excel(writer, sheet_name='Sheet1')
    
    workbook = writer.book
    worksheet = writer.sheets['Sheet1']
    
    # 添加图表
    chart = workbook.add_chart({'type': 'line'})
    chart.add_series({'values': '=Sheet1.$B$2:$B$4'})
    worksheet.insert_chart('D2', chart)
# 退出with代码块后自动保存并关闭文件

方法2:替换save()为close()

如果不想使用上下文管理器,直接将原代码中的writer.save()替换为writer.close()即可:

# 保留原代码其他部分不变
worksheet.insert_chart('D2', chart)
writer.close()  # 替换原有的writer.save()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 01:28:14