使用gatsby源文件系统查找Excel文件

使用gatsby源文件系统查找Excel文件,gatsby,Gatsby,不确定,我是否走对了路?我们在产品信息中使用Microsoft Excel文件。因此,我编写了一个transformer插件来提取所需信息并创建JSON节点 我希望通过loadNodeContent获得原始Excel内容(XLSX) // gatsby-node.js ... const contentExcel = await loadNodeContent(node) const workbook = new Excel.Workbook(); await workbook.xlsx.loa

不确定,我是否走对了路?我们在产品信息中使用Microsoft Excel文件。因此,我编写了一个transformer插件来提取所需信息并创建JSON节点

我希望通过
loadNodeContent
获得原始Excel内容(XLSX)

// gatsby-node.js
...
const contentExcel = await loadNodeContent(node)
const workbook = new Excel.Workbook();
await workbook.xlsx.load(contentExcel);
...
使用访问内容会引发错误

损坏的zip:缺少1197个字节

盖茨比源文件系统是否解压缩.xlsx文件或以某种方式处理内容

编辑:

作为临时解决办法,我这样做了。它还证明Excel文件未损坏:

// gatsby-node.js
...
const workbook = new Excel.Workbook();
await workbook.xlsx.readFile(node.absolutePath);
console.log(workbook.worksheets[0].rowCount); // -> 83, reports the correct row count
...

XLSX文件位于zip包装中。也许其中一个文件已经损坏了?还有,你试过@firxworx了吗?也许我能达到我们的要求。我将检查插件。对于我们的用例来说,直接处理Excel文件可能更容易、更干净。我们不需要存储在文件中的所有信息,通常我们需要另一种表示。但是重新读取文件的解决方法(见上文)也很笨拙。@firxworx插件基本上做了同样的事情。它从文件系统中读取Excel二进制文件。我对盖茨比和相关技术相当陌生。但我的结论是,盖茨比源文件系统不存储原始的、未经处理的二进制数据。我个人只在标记文件中使用过文件系统插件。我不知道它对文件做了什么,也不知道它是否以某种方式处理它们,除非有人马上知道,否则您可能必须检查源代码