首页 > 解决方案 > Python - 如何阅读 Sharepoint excel 工作表特定工作表

问题描述

在 Python 中,我使用Office 365 REST Python 客户端库来访问和阅读包含许多工作表的 Excel 工作簿。

虽然身份验证成功,但我无法将工作表名称的正确路径附加到文件名,以便按名称访问第一个或第二个工作表,这就是为什么工作表的输出不是 JSON而是 IO Bytes 的原因我的代码无法处理。

我的最终目标是通过名称“employee_list”简单地访问特定工作表并将其转换为 JSON 或 Pandas 数据框以供进一步使用。

下面的代码片段 -

import io
import json
import pandas as pd
from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.runtime.auth.user_credential import UserCredential
from office365.runtime.http.request_options import RequestOptions
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.files.file import File
from io import BytesIO


username = 'abc@a.com'
password = 'abcd'
site_url = 'https://sample.sharepoint.com/sites/SAMPLE/_layouts/15/Doc.aspx?OR=teams&action=edit&sourcedoc={739271873}'      
# HOW TO ACCESS WORKSHEET BY ITS NAME IN ABOVE LINE

ctx = ClientContext(site_url).with_credentials(UserCredential(username, password))
request = RequestOptions("{0}/_api/web/".format(site_url))
response = ctx.execute_request_direct(request)
json_data = json.loads(response.content) # ERROR ENCOUNTERED JSON DECODE ERROR SINCE DATA IS IN BYTES

标签: pythonjsonpython-3.xexcelsharepoint

解决方案


您可以通过工作表索引访问它,检查以下代码....

import xlrd
  
loc = ("File location") 

wb = xlrd.open_workbook(loc) 
sheet = wb.sheet_by_index(0) 

# For row 0 and column 0 
print(sheet.cell_value(1, 0))

推荐阅读