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

使用xlsxwriter调用get_worksheet_by_name返回None的原因排查

问题原因及解决方案

你的问题核心在于xlsxwriter库的定位——它是一个专门用于创建和写入新Excel文件的库,完全不支持读取或修改已存在的Excel文件。

为什么sheet会是None?

当你执行workbook = xlsxwriter.Workbook('result.xlsx')时,xlsxwriter会做这两件事:

  • 如果当前目录下没有result.xlsx,它会创建一个全新的空工作簿
  • 如果已经存在同名文件,它会直接覆盖这个文件,生成一个全新的空工作簿

不管哪种情况,这个新创建的工作簿里默认没有任何工作表,所以你调用workbook.get_worksheet_by_name('result')自然找不到对应的工作表,返回None。

如何解决你的需求?

分两种情况处理:

情况1:你想读取并修改已有的result.xlsx文件

xlsxwriter做不到这件事,你需要换用支持读取Excel的库,比如openpyxl或者pandas:
用openpyxl的示例代码:

from openpyxl import load_workbook

# 加载已有的Excel文件
workbook = load_workbook('result.xlsx')
# 获取名为'result'的工作表
sheet = workbook['result']
# 后续可以对sheet进行操作

情况2:你想用xlsxwriter创建一个包含'result'工作表的新文件

那你需要先手动添加工作表,再获取它:

import xlsxwriter

# 创建新工作簿
workbook = xlsxwriter.Workbook('result.xlsx')
# 添加名为'result'的工作表
sheet = workbook.add_worksheet('result')
# 现在sheet就不是None了,可以开始写入数据
sheet.write('A1', 'Hello World')
# 记得关闭工作簿保存内容
workbook.close()

内容的提问来源于stack exchange,提问作者Xin-Yu Hou

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:46:19