如何在azure synapse笔记本中使用openpyxl打开excel表格?

问题描述 投票:0回答:1

我有一个存储帐户(adls gen2),其中包含多个 Excel 文件,我可以在 synapse 笔记本中打印它们的列表,如下所示:

  mssparkutils.fs.ls("abfss://[email protected]/excelfolder/")

我可以清楚地看到列出的 .xlsx 文件路径,但是当我尝试打开工作表时,它找不到该文件:

from openpyxl import load_workbook
workbook = load_workbook("abfss://[email protected]/excelfolder/excelfile.xlsx")
sheet = workbook.worksheets[0]

sheet

FileNotFoundError:[Errno 2]没有这样的文件或目录:'abfss://[email protected]/excelfolder/excelfile.xlsx'

我尝试使用 https 链接并使用 sas 令牌进行链接,但仍然无法打开文件/sheet1。

如何打开工作表,或者从突触的角度有更好的方法吗?我需要动态(没有 sas 令牌)同时打开多个 excel 文件和联合表。

azure azure-blob-storage openpyxl azure-synapse apache-synapse
1个回答
0
投票

当我尝试在我的环境中复制该问题时,我收到了相同的错误:

enter image description here

Openyxl 工作簿只需要本地文件路径,这就是上述错误的原因。我已经给出了如下所述的文件路径格式:

df=pd.read_excel('https://<storageAccountName>.blob.core.windows.net/<containerName>/<directory>/samp.xlsx<sasToken>',engine="openpyxl",sheet_name = '<sheetName>')

我能够使用以下代码解决该错误:

import pandas as pd
df=pd.read_excel('https://<storageAccountName>.blob.core.windows.net/<containerName>/<directory>/samp.xlsx<sasToken>',engine="openpyxl",sheet_name = '<sheetName>')
print(df) 

enter image description here

否则你可以挂载文件路径并在synapse笔记本中读取它。

© www.soinside.com 2019 - 2024. All rights reserved.