1

我正在尝试使用 pyodide 加载 xlsx 文件。我能够使用以下代码正确加载 xls 文件:

response = await fetch('${fileUrl}')
js_buffer = await response.arrayBuffer()
dFrame = pd.read_excel(BytesIO(js_buffer.to_py()))

但是,当我尝试传递 xlsx 文件时它失败了。我不确定是什么原因造成的。以下是我在测试后已经排除的潜在问题:

  1. “openpyxl”未正确加载 - 我使用 micropip 加载 openpyxl,当我手动将有效的 xlsx 文件放入内存时 pd.read_excel('filename.xlsx') 工作。所以这不是问题。

谢谢您的帮助。

4

1 回答 1

1

所以,我仍然不确定为什么直接 read_excel 或 Excelfile 函数不起作用(特别是因为它们只是调用 openpyxl),但我能够通过使用 openpyxl 打开文件然后将其转换为数据框来使其工作. 下面的工作代码:

      response = await fetch('${fileUrl}')
      js_buffer = await response.arrayBuffer()
      wb = openpyxl.load_workbook(BytesIO(js_buffer.to_py()), data_only = True)
      ws = wb.worksheets[0]
      excel_data = ws.values
      columns = next(excel_data)[0:]
      dFrame = pd.DataFrame(excel_data , columns=columns)
于 2021-11-16T04:22:31.740 回答