您好,欢迎访问唐山市现代电脑职业技能培训学校官网!

151 7556 5189

全国咨询热线

您现在所在位置: 主页 > 行业动态 > 电脑操作

Excel as a Service ——Excel 开发居然可以这么玩

更新时间:2022-11-28

      据不完全统计,全世界都在使用它Excel作为电子表格和数据处理的用户数量为10亿,这不仅是因为它使用简单,而且因为它内置了许多强大的函数,可以结合你的想象力编写各种公式,并根据数据快速生成图表和透视分析。另一方面,Excel在整个Office无论是在客户端,家庭也是开发者最多的组件VBA宏和VSTO插件开发和早年出现SharePoint Server中的Excel Service(包括用于呈现Excel文件的Web Part,以及一套XML Web Service可远程调用Excel包括自定义在内的功能Excel函数等。

       在Office 365的时代,SharePoint Online中已经将Excel Service删除了2016年7月左右揭开神秘面纱的功能。Microsoft Graph Excel API,融入Microsoft Graph大家族的Excel Service快速迭代,其功能也趋于稳定。今天,我将用一个例子来介绍它奇妙的设计和应用场景。

范例介绍

      想象一下,你用Excel通过输入几个参数,制作了一个非常强大的抵押贷款计算表Excel自带的PMT函数计算月还款金额,因此快速生成还款计划,如下图所示:

PMT 根据固定支付金额和固定利率计算贷款支付金额的财务函数。如果您感兴趣,请参考 https://support.office.com/zh-cn/article/PMT-函数-0214DA ** -9A63-4996-BC20-214433FA ** 41 的帮助。

同时,您还可以轻松生成数据列表和相应的图表,如下图所示

      通过改变购买价格、利率、贷款期、贷款金额等单元格的价值,Excel会自动计算其他单元格的值,包括自动刷新图表。所有这些都是大多数表兄弟非常熟悉的体验。

那么问题来了:如果你想在一个网页上实现抵押贷款计算的功能,你应该自己实现一次吗?PMT这个函数的功能呢?我不知道,但我想你读完这篇文章后会改变一些想法—— 我们可以完全给出这些计算Excel Service直接调用前端应用。

使用Microsoft Graph中的Excel API,您不仅可以访问工作簿、工作表、单元格、表格和图表,修改它们的属性和值,甚至以图片的形式读取图表,一切都在您的掌握之中。接下来,用示例代码来展示这些美妙的场景。

Microsoft Graph Excel API请参考官方文件 https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/excel使用Microsoft Graph 获取工作簿和单元格

      要使用Micrsosoft Graph Excel API,你只需要将Excel文件放到OneDrive for Business或者SharePoint Online可以在文档库中使用。例如,我把演示文件放在目录中:

你需要知道一些Microsoft Graph背景知识,如果你是对的Microsoft Graph不熟悉。我建议你参考我之前的两篇文章

Microsoft Graph 概述通过Graph Explorer体验Microsoft Graph

      本文采用的方法是使用Graph Explorer这样操作Microsoft Graph Excel API。我的文件在OneDrive for Business 个人云盘根目录下方testgraph文件名称在目录中 demofile.xlsx,所以我可以用GET https://graph.microsoft.com/v1.0/me/drive/root:/testgraph/demofile.xlsx:/workbook拿到这本工作簿

      通过 GET https://graph.microsoft.com/v1.0/me/drive/root:/testgraph/demofile.xlsx:/workbook/worksheets 在工作簿中获得所有工作表信息

通过 GET https://graph.microsoft.com/v1.0/me/drive/root:/testgraph/demofile.xlsx:/workbook/worksheets/抵押计算器/range(address='c4')可获得名为抵押计算器的工作表C4单元格对象

      当然,单元格对象也可以通过名称访问,语法是 GET https://graph.microsoft.com/v1.0/me/drive/root:/testgraph/demofile.xlsx:/workbook/names/每月还金额 这样的

      您还可以返回多个单元格的值,比如下面的查询 GET https://graph.microsoft.com/v1.0/me/drive/root:/testgraph/demofile.xlsx:/workbook/worksheets/抵押计算器/range(address='c4:c6')/values

更新单元格内容

     在上一节中,我用几种不同的语法展示了如何获得工作簿、工作表和单元格(包括直接查询其值)。如果我们想修改单元格的值,我们该怎么办?以下示例展示了如何在工作表中命名为抵押计算器C4的值修改为新值,如4万.

    需要注意的是,我们通常使用查询数据API请求方法是GET,修改数据所需的请求方法是PATCH。为实现上述单元格修改要求,要执行的查询是 PATCH https://graph.microsoft.com/v1.0/me/drive/root:/testgraph/demofile.xlsx:/workbook/worksheets/抵押计算器/range(address='c4&同时,#39;还需要提供新的值。

{values:[[400000]]}PATCH该方法可以局部更新目标对象。我们只提供上述代码Values这个属性 ** ,但也可以添加其他属性,以达到一次修改多个属性的目的。

执行成功后,你会发现C40000变成了4万。

     我在这里埋了一个伏笔,如果你在程序中以上述方式修改了单元格(A)然后获得另一个单元格的值(B)假设B跟A有一种公式关系,你可能期望B的值会立即刷新。但事实上,它不会。这里涉及到一些相对复杂的概念,即Excel API有两种访问模式。我们现在使用的是所谓的非持久会话模式。它通常用于查询数据或修改后不保存。因此,在下一次查询中,您实际上获得了旧值。 关于如何创建持久会话,并在多个查询中共享,请参考 https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/workbook_createsession 详细说明。在工作表中获取图表

      我们已经知道如何访问工作簿的单元格,如何更新它们的值,这使得我们很容易实现许多业务场景:你可以Excel做很多复杂的公式,设计数据之间的关系,然后通过API修改某些单元格的值,然后获得其他单元格的值。你的应用程序似乎很相似Excel神奇的功能,但事实上,一切仍然存在Excel默默为你服务,你所做的就是调用一两个接口。

接下来,我们将演示一个有趣的场景,以图片的形式提取工作表中的图表。这个场景特别适合我们处理数据,然后希望在前端应用程序中显示图表。Excel API一个图表可以用一个图表Base ** 以字符串的形式返回,客户端可以使用此图片显示。

其实听起来很神秘的东西只是一件事GET请求而已 GET https://graph.microsoft.com/v1.0/me/drive/root:/testgraph/demofile.xlsx:/workbook/worksheets/charts/图表1/i ** ge

接口返回的结果是一串又长又长的字符串,你肯定看不懂。你要做的就是把这个字符串起来 ** 出来,然后使用文本编辑器新建文件,然后填写以下内容

接下来,将此保存为一个html文件,然后在浏览器中打开它。你认为下面的图表似曾相识吗?恭喜你回答对了。事实上,这个图表以前是Excel文件中的那个。

结语

     我在很多场合都分享过Office 365 平台能力和开发场景,Microsoft Graph它起着关键作用,今天就给大家展示一下Excel API毫无疑问,现得淋漓尽致,毫无疑问,我在这里演示的只是一些皮毛,更多有趣的场景,还等着你的发现。

在线客服

ONLINE SERVICE

联系电话

151 7556 5189

返回顶部
冀公网安备13020302001222