excel学习库

excel表格_excel函数公式大全_execl从入门到精通

博士用130行代码搞定的事情,Excel也可以

大家都知道Excel可以使用VBA处理数据采集,如果我们调用一些成熟的OCR接口是否可以实现批量识别图片呢?我们来聊聊其中涉及到的知识及技术!

我们直接来看效果吧!

▼动画演示-OCR识别行程码

可以清楚地识别出,我们想要的核心信息,更新时间,到过什么地方等!

他的实现主要是调用百度的OCR,当然其他一些成熟的OCR产品都可以,比如腾讯也是不错的!、

我们说说其中涉及的技术和主要事项

S01 | 百度OCR注册

网址: https://ai.baidu.com/tech/ocr

在控制台,创建一个应用,名称什么的随意起一个就行,我们核心需要的是他的ID和Key

具体如下图,这个是你的身份信息和验证信息,服务器通过它来识别你的身份!后续我们需要用到!

下面就是通过官方的接口来实现识别功能了!

S02 | 获取Token

官方的文档如下:

https://cloud.baidu.com/apiexplorer/index.html?Product=GWSE-DJAQ8YwekkQ&Api=GWAI-Q5xGTKoot4h

我们需要使用VBA发起这个请求,参考如下代码:

大家只要把自己的ID和KEY传进去,即可获取对应的TOKEN,我已经封装成一个自定义函数了!

调用效果如下:

S03 | 如何识别

其实没有什么难点,官方都有对应的API说明,我们只需要调用接口即可!

如果说有点难的,就是如何使用VBA把图片转base64编码?

在VBA中,我们首先要把图片转二进制,这个通过下面这个自定义函数来处理

▍图片转二进制函数

然后我们就可以把二进制转成base64,利用的是XMLDOM!

▍二进制转base64

这些主要是给大家提供处理方案!

转成base64后,发送给服务器前需要做一下URI转码

▍URI编码

以上三步才能把图片转成可以上传到服务器的数据!

结合上面的代码,最后通过下面这个函数,发送请求即可!注意其中用到了我们上面所讲的几个自定义函数!写入

Function BaiduOCR(PicPath As String) As String    url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=" & mytoken    PostData = "image=" & encodeURIByHtml(strToBase64(FileToByte(PicPath))) '图像base64编码    Set xml = CreateObject("WinHttp.WinHttpRequest.5.1")    With xml        .Open "POST", url, False        .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"        .Send PostData        result = ByteToStr(.ResponseBody, "utf-8")    End With    Debug.Print resultEnd Function

上面只是演示如何调用API,一般成熟的API都有成熟的文档,大家主要就是要学习一下 WinHttp.WinHttpRequest.5.1

将识别结果批量写入到Excel,比较简单,我就不再啰嗦了!感兴趣的同学可以去试试,最好是有VBA基础!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接