• xsz.tw 不带广告的小说站
  • down.tw 资源、下载站
  • dushu.tw 读书网、小说免费阅读网站

用Excel工作表调用E5 10个API(转)

软件 举个栗子 4个月前 (04-22) 318次浏览 0个评论 扫描二维码

相信 Office 办公软件每个人都会用到,其中可能 Excel 有部分朋友用得比较多,那么小弟用 Excel VBA 写了个调用 E5 API 的东东,供各位大佬试试,在微软自己的开发环境下调用 API,是否能为 E5 续订助力呢?

注意,不保证一定能续订
注意,不保证一定能续订
注意,不保证一定能续订

好了,废话不多说,先上效果图【第 1 版】:

用 Excel 工作表调用 E5 10 个 API(转)

首先,感谢这个博客主的教程:https://blog.432100.xyz/index.php/archives/50/

大家请按这个博客教程创建自己的应用程序,然后开启如下权限:

Files.Read.All   Files.ReadWrite.All   Sites.Read.All   Sites.ReadWrite.All

User.Read.All   User.ReadWrite.All   Directory.Read.Al   Directory.ReadWrite.All

Mail.Read   Mail.ReadWrite   MailboxSettings.Read   MailboxSettings.ReadWrite

然后按博客教程里的操作,用 rclone 获取 access_token ,注意,是:access_token,不是:refresh_token,可以看下图(红箭头位置):

用 Excel 工作表调用 E5 10 个 API(转)

然后新建一个 Excel 工作表,打开工作表,什么都不用填先,先另存为 .xlsm 格式的文件,名字随便,因为只有 .xlsm 格式的 Excel 文件才能保存 Excel VBA 代码,打开你另存的 .xlsm 文件,里面只会有一个 Sheet1 工作表,把上一步得到得 access_token 复制到 A1 单元格中,注意一定是复制到 A1 单元格中,然后按 Alt+F11 组合键,进入 Excel VBA 编辑器窗口,然后点:插入–>模块,在左边工程资源管理器窗口里就会新建一格”模块 1“,

用 Excel 工作表调用 E5 10 个 API(转)

然后将下面所有代码复制到”模块 1“中:

 

Private Flag As Long
Private Count As Long

Public Sub MainProgram()
    Dim accessToken As String
    accessToken = Worksheets("sheet1").Range("A1").Value
    Dim url(1 To 10) As String
    url(1) = "https://graph.microsoft.com/v1.0/me/drive/root"
    url(2) = "https://graph.microsoft.com/v1.0/me/drive"
    url(3) = "https://graph.microsoft.com/v1.0/users"
    url(4) = "https://graph.microsoft.com/v1.0/me/messages"
    url(5) = "https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messageRules"
    url(6) = "https://graph.microsoft.com/v1.0/me/drive/root/children"
    url(7) = "https://graph.microsoft.com/v1.0/me/mailboxSettings"
    url(8) = "https://graph.microsoft.com/v1.0/me/mailFolders"
    url(9) = "https://graph.microsoft.com/v1.0/me/outlook/masterCategories"
    url(10) = "https://graph.microsoft.com/v1.0/sites/root/drives"
   
    Dim http As Object
    Set http = CreateObject("MSXML2.XMLHTTP")
    Dim i As Long
    For i = 1 To 10 Step 1
        On Error GoTo a
        http.Open "GET", url(i), False
        http.setRequestHeader "Content-Type", "application/json"
        http.setRequestHeader "Authorization", accessToken
        http.Send

        Do While http.ReadyState <> 4
            DoEvents
        Loop
            
        If http.Status = 200 Then
            Worksheets("sheet1").Range("A11").Select
            Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
            ActiveCell.FormulaR1C1 = "成功调用第【" & i & "】个 API,第【" & Count & "】次," & "调用时间:" & Now()
            Worksheets("sheet1").Range("A10").Select
            
        Else
a:
            Worksheets("sheet1").Range("A11").Select
            Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
            ActiveCell.FormulaR1C1 = "第【" & i & "】个 API 调用失败!" & "出错时间:" & Now()
            Worksheets("sheet1").Range("A10").Select

        End If
    Next
    Count = Count + 1
    Call ExecProgram
End Sub

Public Sub ExecProgram()
    If Flag = 1 Then
        Application.OnTime Now() + TimeValue("00:00:10"), "MainProgram"     '这里修改 API 调用时间间隔,默认为每隔 10 秒调用一次,格式为:时:分:秒
    Else
        Exit Sub
    End If
End Sub

Public Sub Run()
    Flag = 1
    Count = 1
    Call ExecProgram
    MsgBox "开始<a href="https://www.lizi.tw/tag/%e8%b0%83%e7%94%a8api" title="查看更多关于调用 API 的文章" target="_blank">调用 API</a>!"
End Sub

Public Sub Shutdown()
    Flag = 0
    MsgBox "关闭调用程序!"
End Sub


然后切换回到 Sheet1 工作表界面,选择:开发工具–>插入 ,选择”表单控件“中第 1 格”按钮控件“,如图

用 Excel 工作表调用 E5 10 个 API(转)

按照这个步骤建 2 个”按钮控件“,然后右键点第 1 个”按钮控件“,选择”指定宏“,然后在弹出得对话框中选择” run “这个宏,然后点确定,然后再次右键点这个“按钮控件”,选择“编辑文字”,为这个控件命名为“启动”,重复这一步骤,设置第 2 个”按钮控件“,选择” Shutdown “这个宏,然后点确定,最后也是右键点击,可以更改控件名称为“关闭”,然后你单击“启动”按钮,就开始调用 E5 API 了。我默认设置为 10 秒间隔,你可以自己修改时间间隔。

另外要说明一下:
1、好处是无需 VPS,可随时打开运行
2、不足之处在于需要重新验证 access_token
2.1、关机重启后,需要重新用 rclone 获取 access_token 更换 A1 单元格之前得 access_token 才能再次正常运行
2.2、程序隔得太久不运行后,需要重新用 rclone 获取 access_token 更换 A1 单元格之前得 access_token 才能再次正常运行

其实已经写好了第 2 个版本,第 2 个版本是支持设置指定时间区间内随机调用 API,但是办法比较笨拙,所有就先没有放出来给大家,有没有哪位大佬能做下随机调用的修改,麻烦弄弄,造福各位 mjj,谢谢

最后,祝大家在 piao E5 的道路上越走越远~~

原文地址:https://www.hostloc.com/thread-674020-1-2.html


举个栗子 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:用 Excel 工作表调用 E5 10 个 API(转)
喜欢 (1)
举个栗子
关于作者:
建筑工地上施工员,闲暇时弄个博客打发时间,
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址