使用XlsxWriter在指定工作表写入字符串的问题求助
向Excel的Sheet3写入内容失败的问题解决
方法1报错:AttributeError: 'str' object has no attribute 'to_excel'
- 原因:
txt1、Value1这类变量是字符串或普通数值,不是Pandas的DataFrame对象,to_excel()是DataFrame的专属方法,非DataFrame类型调用该方法必然报错。 - 解决:
方式一:将零散的文本、计算值组装成DataFrame后写入
方式二:直接操作ExcelWriter的工作表对象写入单个单元格(需先创建Sheet3)# 假设txt1、txt2、Value1已定义 df3 = pd.DataFrame({ '标题': [txt1, txt2], '数值': ['', Value1] }) df3.to_excel(writer, sheet_name='Sheet3', index=False)
方法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
相关产品推荐
相关产品推荐

