在Excel JS加载项中使用第三方节点模块

lmvvr0a8  于 2022-12-05  发布在  其他
关注(0)|答案(2)|浏览(222)

我正在尝试创建一个Excel插件来生成自定义函数(也称为UDF),以便从使用OAUTH1三步过程收集数据的Web数据源中提取数据。它类似于OAUTH2过程,但可以连接到本地主机。
我有一段代码可以在Node.JS上运行来授权OUATH1进程。

`var papaParse = require('papaparse');`
`const express = require("express");`
`const {nanoid} = require("nanoid");`
`const open = require("open");`
`const crypto = require('crypto');`
`const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));`

Excel插件是否在浏览器空间中运行,因此无法访问express?
我不确定我是否理解如何在Excel加载项项目中使用这些库。在更糟糕的情况下,我可以要求用户插入令牌并删除express的要求,但我仍然需要其他库。
我使用“npm install papaparse”、“npm install express”等将每个库添加到项目中,并期望能够访问这些库并在项目中使用它们。
下面是我在代码中使用上述库时收到的错误。

`WARNING in ./node_modules/express/lib/view.js 81:13-25`
`Critical dependency: the request of a dependency is an expression`
`@ ./node_modules/express/lib/application.js 22:11-28`
`@ ./node_modules/express/lib/express.js 18:12-36`
`@ ./node_modules/express/index.js 11:0-41`
`@ ./src/functions/functions.js 49:14-32`

`WARNING in ./node_modules/on-finished/index.js 207:11-33`
`Module not found: Error: Can't resolve 'async_hooks' in 'C:\Users\EricLevy\OneDrive - Meridian Business Services\mb_ns_connector_test\mb_ns_connector_test\node_modules\on-finished'`
`@ ./node_modules/express/lib/response.js 23:17-39`
`@ ./node_modules/express/lib/express.js 22:10-31`
`@ ./node_modules/express/index.js 11:0-41`
`@ ./src/functions/functions.js 49:14-32`

`WARNING in ./node_modules/raw-body/index.js 302:11-33`
`Module not found: Error: Can't resolve 'async_hooks' in 'C:\Users\EricLevy\OneDrive - Meridian Business Services\mb_ns_connector_test\mb_ns_connector_test\node_modules\raw-body'`
`@ ./node_modules/body-parser/lib/read.js 16:14-33`
`@ ./node_modules/body-parser/lib/types/raw.js 15:11-29`
`@ ./node_modules/body-parser/index.js 144:15-41`
`@ ./node_modules/express/lib/express.js 15:17-39`
`@ ./node_modules/express/index.js 11:0-41`
`@ ./src/functions/functions.js 49:14-32`

`3 warnings have detailed information that is not shown.`
`Use 'stats.errorDetails: true' resp. '--stats-error-details' to show it.`

`ERROR in ./src/functions/functions.js 56:13-30`
`Module not found: Error: Can't resolve 'crypto' in 'C:\Users\EricLevy\OneDrive - Meridian Business Services\mb_ns_connector_test\mb_ns_connector_test\src\functions'`
eulz3vhy

eulz3vhy1#

Office Web加载项在Web浏览器中运行(嵌入式)。因此,您可以将其视为客户端应用程序,其中ExpressJS没有任何意义。而在服务器端使用ExpressJS(例如,创建API)。

6psbrbz9

6psbrbz92#

Excel加载项是一种Web应用程序,因此它同时具有服务器端和客户端。express服务器在服务器端的Node.js中运行。任何可以在Node.js中使用的库也可以在Excel加载项中使用。
问题中的错误与您将Web应用程序作为Excel外接程序呈现这一事实无关。请考虑编辑问题和标题(以及标记)以删除对该外接程序的提及。如果Node.js和ExpressMaven认为该问题与Excel外接程序有关,他们可能会忽略该问题。
我建议您先让Web应用程序在浏览器中运行,只需要忽略调用Office.js.的JavaScript即可。

相关问题