Microsoftgraph Excel 不修改文件的计算

Microsoftgraph Excel calculation without modifying file

我有一个 Excel 文件,它根据几个输入变量计算产品建议。要在 Web 应用程序中使用它并让用户定义输入变量,我想使用 Microsoft graph Excel API,但不知道是否可以在不实际复制和修改的情况下进行计算原始 Excel 文件。

目前我有一个解决方案,需要三个 API 调用来执行此操作:

显然这不是理想的解决方案,但我在文档中找不到更简单的解决方案。 无论如何要改进这个过程?

只要您的计算仅依赖于工作簿的现有状态(pre-defined 模板、公式),您就可以在驱动器中拥有文件的 1 个副本,re-use在不保存文档的情况下进行计算。本质上,您可以将 Excel 文件用作 calc-engine 并使用更新的结果值。

为此,您需要创建一个 session,它在进行任何 API 调用以修改数据之前不保存更新。

POST /{version}/me/drive/items/01CYZLFJGUJ7JHBSZDFZFL25KSZGQTVAUN/workbook/createSession

Body:

{ "persistChanges": false }

响应:

{ "@odata.context": "https://graph.microsoft.com/{version}/$metadata#microsoft.graph.sessionInfo", "id": "{session-id}", "persistChanges": false }

结果 session header 应附加在以下 HTTP 调用中。只要您这样做,它就不会保存您的更改。

下次调用时,添加 HTTP header:

workbook-session-id: {session-id}

注意:您可以 运行 进入给定文件的 session 限制。如果您预计会有很多并发请求,那么您应该制作 Excel 文件的副本以分配负载。