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

如何用XlsxWriter在Excel指定工作表写入字符串及数值?解决报错

问题解决办法

错误1:AttributeError: 'str' object has no attribute 'to_excel'

这个错误是因为你直接对字符串/数值变量调用了to_excel()方法——这个方法仅属于pandas的DataFrame或Series对象,普通字符串、数值不能直接使用。

解决思路:把零散的文本、数值变量整理成DataFrame或Series,再写入Sheet3。
示例代码:

import pandas as pd

# 假设已有的两个DataFrame
df1 = pd.DataFrame({'A': [1,2,3]})
df2 = pd.DataFrame({'B': [4,5,6]})

# 你的文本和数值变量
txt1 = 'TITLE 1'
Value1 = 30
txt2 = 'TITLE 2'
Value2 = 50

# 把变量整理成DataFrame
sheet3_data = pd.DataFrame({
    '标题': [txt1, txt2],
    '数值': [Value1, Value2]
})

# 用ExcelWriter统一写入所有工作表
with pd.ExcelWriter('你的文件.xlsx', engine='openpyxl') as writer:
    df1.to_excel(writer, sheet_name='Sheet1', index=False)
    df2.to_excel(writer, sheet_name='Sheet2', index=False)
    sheet3_data.to_excel(writer, sheet_name='Sheet3', index=False)

错误2:KeyError: 'sheet3'

这个错误通常有两种场景:

  1. 尝试读取已存在的Excel文件,想直接写入不存在的Sheet3,但用了错误的方式(比如先读取整个文件,再试图给sheet_names里没有的Sheet赋值)。
  2. 使用mode='a'追加写入时,引擎不支持动态创建工作表,或者没有正确初始化工作表。

解决思路:

  • 如果是新建文件:用上面的ExcelWriter一次性写入所有工作表,会自动创建Sheet3。
  • 如果是给已有文件追加Sheet3:确保使用支持追加的引擎(比如openpyxl),并且在ExcelWriter中指定mode='a',同时文件不能处于打开状态。
    示例代码(追加场景):
with pd.ExcelWriter('你的文件.xlsx', engine='openpyxl', mode='a', if_sheet_exists='new') as writer:
    sheet3_data.to_excel(writer, sheet_name='Sheet3', index=False)

注意:if_sheet_exists='new'会在Sheet3已存在时创建新的工作表(比如Sheet31),如果要覆盖已存在的Sheet3,可设为if_sheet_exists='replace'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:27:26