在 Node.JS 中解析 Microsoft Office 文件
Posted
技术标签:
【中文标题】在 Node.JS 中解析 Microsoft Office 文件【英文标题】:Parse Microsoft Office files in Node.JS 【发布时间】:2012-10-05 20:24:07 【问题描述】:我正在开发一个 Web 应用程序,用户可以在其中上传 Microsoft Office 文档文件。现在,我们的服务器正在运行带有 Express.js 的 Node.JS,并且我们托管在 Heroku 上。正因为如此,我不认为我可以安装诸如 abiword 或 catdoc 之类的程序。我可以处理文件上传,但无法解析文档的内容。
如何读取 doc 文件的内容?然后将信息放入数据库中。保留基本格式(粗体、斜体、下划线)会很好,但不是必需的。
【问题讨论】:
【参考方案1】:虽然您似乎无法通过 NPM 获得可以直接执行 Word 的任何内容,但您也许可以使用 REST API 通过其他云服务请求它。例如,Saaspose(它们属于著名的 Aspose 工具)具有用于 Word、Excel、PDF 等的公共 API。他们在其页面上列出了对 node.js、javascript 和 Heroku 的支持。
编辑:
我看到 Saaspose 现在被称为 Aspose for Cloud
另一个声称类似的 API 是 Doxument
【讨论】:
这太完美了!非常感谢。【参考方案2】:Office package: npm install office
似乎至少提供了部分答案。我用它来读取 Excel 文件,到目前为止还没有尝试过任何 Word 文档。
【讨论】:
注意:这个包似乎通过运行 unoconv dag.wieers.com/home-made/unoconv(OpenOffice 转换器)将输入转换为 html。 (对于电子表格,它似乎使用 unoconv 转换为 xls,然后使用 freecode.com/projects/xlhtml 转换 xls->html) 和 unoconv 需要 libreoffice.. 兔子洞有多深?我认为这个解决方案不会很好地扩展,除非你想在所有服务器上安装所有这些应用程序......坦率地说,这是一项相当艰巨的任务【参考方案3】:似乎还没有。请参阅下面的内容可能会有所帮助。
Can I read PDF or Word Docs with Node.js?
【讨论】:
【参考方案4】:您可以使用 mammoth 来解析 .docx 文件https://www.npmjs.com/package/mammoth 和 xlsx 来解析 .xlsx 文件https://github.com/SheetJS/js-xlsx
【讨论】:
以上是关于在 Node.JS 中解析 Microsoft Office 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 node.js 版本的 Microsoft Bot Framework 中“退出”?