javascript - Pyodide 无法将 xlsx 文件读入 pandas

标签 javascript node.js webassembly pyodide

我正在尝试使用 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') 可以工作。所以这不是问题。

感谢您的帮助。

最佳答案

所以,我仍然不确定为什么直接 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)

关于javascript - Pyodide 无法将 xlsx 文件读入 pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69977972/

相关文章:

javascript - 通过相同的键对 javascript 数组对象进行分组

javascript - Vue.js setTimeout 函数在一定时间后播放音频

node.js - 使用 mongoose nodejs 将集合填充到另一个集合 mongoDB 中

javascript - 快速发送文件中断

rust - 使用into_serde反序列化字符串使应用程序 panic

javascript - 为动态元素添加事件监听器?

javascript - 使用 JavaScript 调用需要身份验证的 SOAP Web 服务

javascript - Node.js 内存使用量永远不会减少

c++ - 是否可以只使用 QT 和 WebAssembly(而不是 HTML + CSS + JavaScript)来开发前端 Web?

webassembly - 类型错误 : WebAssembly Instantiation: Imports argument must be present and must be an object