使用openpyxl.load_workbook访问文件时出现TypeError: Value must be a sequence错误
问题分析与解决方案
这个错误我之前也碰到过几次,大概率是网络路径访问权限或者openpyxl对路径的处理差异导致的,下面给你拆解几个可能的原因和对应的解决办法:
网络路径权限或映射问题
你电脑上的S:\是映射的网络驱动器,但这个映射是用户级别的——另一台电脑可能没有完成相同的驱动器映射,或者当前用户没有访问该共享目录的权限。
解决思路:- 先在另一台电脑手动打开
S:\dic1\dic2\dic3,确认能正常访问并打开file.xlsx,如果提示权限不足,联系管理员给该电脑用户分配共享目录的读取权限。 - 把代码中的映射路径换成完整的UNC路径(直接指向服务器共享),比如:
import openpyxl path = r"\\服务器主机名\共享文件夹名\dic1\dic2\dic3\file.xlsx" wb = openpyxl.load_workbook(path)
- 先在另一台电脑手动打开
openpyxl版本不一致
你提到两台电脑Python版本相同,但openpyxl的小版本差异可能引发路径解析bug——旧版本对映射驱动器的路径处理存在兼容性问题。
解决思路:- 在两台电脑分别运行
pip show openpyxl查看版本号,确认是否一致。 - 如果版本不同,将另一台电脑的openpyxl升级到和你电脑相同的版本:
pip install openpyxl==你的电脑上的版本号
- 在两台电脑分别运行
路径解析的系统适配问题
虽然用了原始字符串r"",但不同系统的路径解析逻辑可能存在细微差异,试试用os.path模块来生成路径,让系统自动适配:import os import openpyxl path = os.path.join("S:", "dic1", "dic2", "dic3", "file.xlsx") wb = openpyxl.load_workbook(path)文件被占用或损坏
另一台电脑上的file.xlsx可能被其他程序锁定(比如有人正在编辑),或者同步/复制过程中文件损坏。
解决思路:- 在另一台电脑手动打开该Excel文件,确认能正常打开且无报错。
- 关闭所有占用该文件的程序后,再运行代码测试。
内容的提问来源于stack exchange,提问作者grizzli11
相关产品推荐
相关产品推荐

