从Teams SharePoint导入Excel到Python遇错误:需手动指定引擎
问题分析与解决方案
错误原因说明
这个错误和Excel包含多个工作表无关,pd.read_excel的sheet_name=None参数本身就是读取所有工作表的合法用法,不会触发格式识别失败的问题。
可能的解决步骤
1. 修正SharePoint文件URL
你的folder_url_sp末尾带有?web=1参数,这是SharePoint的网页预览链接,而非文件的实际二进制资源链接。下载到的内容可能是网页HTML而非Excel文件,导致pandas无法识别格式。
修改URL,去掉?web=1:
folder_url_sp = '/Shared%20Documents/02%20Team%20IAP/06_Da-An/Data/E/Edate.xlsx'
2. 手动指定Excel读取引擎
即使文件下载正确,pandas有时无法自动识别Excel格式,需要手动指定引擎。对于.xlsx文件,推荐使用openpyxl引擎(需先安装依赖):
首先安装依赖:
pip install openpyxl
然后修改读取代码:
data = pd.read_excel(bytes_file_obj, sheet_name=None, engine='openpyxl')
3. 验证下载文件的有效性
如果以上步骤仍无效,可以先将下载的二进制内容保存为本地文件,确认是否为合法的Excel文件:
with open('local_test.xlsx', 'wb') as f: f.write(bytes_file_obj.getvalue())
尝试打开local_test.xlsx,如果无法打开,说明文件下载过程存在问题,需要检查SharePoint路径、权限或认证是否正确。
内容的提问来源于stack exchange,提问作者user20216792
相关产品推荐
相关产品推荐

