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

使用XlsxWriter在指定工作表写入字符串的问题求助

向Excel的Sheet3写入内容失败的问题解决

方法1报错:AttributeError: 'str' object has no attribute 'to_excel'

  • 原因:txt1、Value1这类变量是字符串或普通数值,不是Pandas的DataFrame对象,to_excel()是DataFrame的专属方法,非DataFrame类型调用该方法必然报错。
  • 解决:
    方式一:将零散的文本、计算值组装成DataFrame后写入
    # 假设txt1、txt2、Value1已定义
    df3 = pd.DataFrame({
        '标题': [txt1, txt2],
        '数值': ['', Value1]
    })
    df3.to_excel(writer, sheet_name='Sheet3', index=False)
    
    方式二:直接操作ExcelWriter的工作表对象写入单个单元格(需先创建Sheet3)

方法2报错:KeyError: 'sheet3'

  • 原因:调用writer.sheets['sheet3']时,Sheet3还未被创建,ExcelWriter中不存在这个工作表对象,所以触发KeyError。
  • 解决:先通过writer.book.create_sheet()创建Sheet3,再获取工作表对象进行写入
    # 在已有的writer上下文里添加以下代码
    # 创建Sheet3
    writer.book.create_sheet('Sheet3')
    # 获取Sheet3的工作表对象
    worksheet = writer.sheets['Sheet3']
    # 写入内容
    worksheet.write(0, 0, txt1)
    worksheet.write(1, 0, txt2)
    worksheet.write(1, 1, Value1)
    

完整示例代码

import pandas as pd

# 示例DataFrame(替换成你的实际数据)
df_sheet1 = pd.DataFrame({'数据1': [10, 20, 30]})
df_sheet2 = pd.DataFrame({'数据2': [40, 50, 60]})

# 定义要写入Sheet3的内容
txt1 = "关联标题1"
txt2 = "关联标题2"
Value1 = 150  # 计算得到的数值

with pd.ExcelWriter('result.xlsx') as writer:
    # 写入Sheet1和Sheet2
    df_sheet1.to_excel(writer, sheet_name='Sheet1', index=False)
    df_sheet2.to_excel(writer, sheet_name='Sheet2', index=False)
    
    # 创建并写入Sheet3
    writer.book.create_sheet('Sheet3')
    worksheet = writer.sheets['Sheet3']
    
    worksheet.write(0, 0, txt1)
    worksheet.write(1, 0, txt2)
    worksheet.write(1, 1, Value1)

内容的提问来源于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 20:27:17