使用 python 中的 openpyxl 读取存储在共享点位置的 xlsx?

新手上路,请多包涵

快一个。

我的 XLSX 文件位于共享点驱动器上,无法在 python 中使用 openpyxl 打开它,如果它存储在我的本地驱动器上,它会很好用。

我试过了。

 from openpyxl import load_workbook
wb = load_workbook('https://content.potatocompany.com/workspaces/PotatoTeam/Shared Documents/XYZ errors/XYZ Errors_Confirm.xlsx')

抛出这个异常:

 C:\Anaconda\lib\site-packages\openpyxl\reader\excel.py in load_workbook(filename, use_iterators, keep_vba, guess_types, data_only)
    123     except (BadZipfile, RuntimeError, IOError, ValueError):
    124         e = exc_info()[1]
--> 125         raise InvalidFileException(unicode(e))
    126     wb = Workbook(guess_types=guess_types, data_only=data_only)
    127

InvalidFileException: [Errno 22] invalid mode ('rb') or filename: 'https://...

我错过了什么吗?我需要用 python 阅读其中一张纸的内容。


编辑:

使用 crussell 的建议,我收到 401 UNAUTHORIZED :

 import requests
import urllib
from openpyxl import load_workbook
from requests.auth import HTTPBasicAuth

file = "https://content.potatocompany.com/workspaces/PotatoTeam/Shared Documents/XYZ errors/XYZ Errors_Confirm.xlsx"

username = 'PotatoUser'
password = 'PotatoPassword'

resp=requests.get(file, auth=HTTPBasicAuth(username, password))
print(resp.content)

似乎共享点和请求不兼容,同时具有摘要身份验证和基本身份验证 http://docs.python-requests.org/en/latest/user/authentication/

原文由 Gunay Anach 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 480
1 个回答

不要尝试直接从网址加载,而是尝试使用 urllib。

 import urllib
file = "https://content.potatocompany.com/workspaces/PotatoTeam/Shared Documents/XYZ errors/XYZ Errors_Confirm.xlsx"
urllib.urlretrieve(file,"test.xlsx")

从进一步的研究来看, requests 可能比 urllib 更受欢迎。尝试这个:

 import requests
from requests.auth import HTTPBasicAuth
file = "https://content.potatocompany.com/workspaces/PotatoTeam/Shared Documents/XYZ errors/XYZ Errors_Confirm.xlsx"

username = 'myUsername'
password = 'myPassword'

resp=requests.get(file, auth=HTTPBasicAuth(username, password))
output = open('test.xlsx', 'wb')
output.write(resp.content)
output.close()

要安装请求:

 pip install requests

原文由 crussell 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题