EXCEL VBA调用百度api识别身份证

EXCEL VBA调用百度api识别身份证

Sub BC_识别身份证()
    Dim SHD, SHX As Worksheet
    Dim AppKey, SecretKey, Token, PathY As String
    Dim jSon, JSonA, WithHttp As Object
    Dim Pic, oDom, oW, jsCode, params
    Dim ARX, BRX, DRX, ERX, ZAD
    Dim StrText, StrUrl As String
    Dim StrA, StrB, StrC  As String
    Dim I, X, K As Long
    
    
    Rem 禁止系统刷屏?触发其他事件等
    'On Error Resume Next    '// 发生错误,自动执行下一句,就是忽略错误
    
    
    Rem  获取百度Token
    Set SHX = Worksheets("参数")
    AppKey = SHX.Range("B1").Value
    SecretKey = SHX.Range("B2").Value
    Token = GetTokenBaiDu(AppKey:=AppKey, SecretKey:=SecretKey)
    
    Rem 指定发票文件, 可以是PDF,或JPG,PNG文件, 暂不支持: 一张放票内多条明细, 一个文件内多张发票
    PathY = GetFileName(KZM:="图片文件,*.png;*.bmp;*.jpeg;*.jpg", Title:="请选择图片文件", FileName:="", StrSplitor:="\")
    Open PathY For Binary As #1
    Dim chs() As Byte
    For I = 0 To LOF(1) - 1 '循环至文件末端
        ReDim Preserve chs(0 To K) As Byte '将文件内容存入字节数组
        Get #1, , chs(K) '获取文本内容
        K = K + 1
    Next I
    Close #1
    
    Pic = Byte2Base64(chs)
    Set oDom = CreateObject("htmlfile")
    Set oW = oDom.parentWindow
    jsCode = "encodeURIComponent('" & Pic & "');"
    Pic = oW.eval(jsCode)
    Rem Pic = WorksheetFunction.EncodeURL(Pic)
    params = "id_card_side=" + "front" + "&image=" & Pic
    '    params = "image=" & Pic
    StrUrl = "https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=" & Token
    Set WithHttp = CreateObject("winhttp.winhttprequest.5.1")
    With WithHttp
        .Open "post", StrUrl, False
        .setRequestHeader "content-type", "application/x-www-form-urlencoded"
        .send (params)
        StrText = BytesToBstr(.Responsebody, "utf-8")
    End With
    Set oDom = Nothing
    Set oW = Nothing
    
    Rem SHX.Range("G4").Value = StrText '// StrText = SHX.Range("G4").Value
    
    Rem 创建JSON对象并将其赋值为要解析的JSON字符串
    Set jSon = JsonConverter.ParseJson(StrText)
    Rem  jSon.Count & vbCrLf & jSon.Items()(0) & vbCrLf & jSon.keys()(0)
    Rem JSON("forecast")("forecastday")("hour")(i)("time_epoch")
    Rem  IntX = jSon("words_result")("CommodityName").Count
    
    Rem 写到字典中
    Set ZAD = CreateObject("Scripting.Dictionary")
    If InStr(StrText, "姓名") = 0 Then
        If InStr(StrText, "签发日期") > 0 Then
            ZAD("签发日期") = jSon("words_result")("签发日期")("words")
            ZAD("失效日期") = jSon("words_result")("失效日期")("words")
            ZAD("签发机关") = jSon("words_result")("签发机关")("words")
        Else
            ZAD("错误") = "识别失败,返回结果错误"
        End If
    Else
        ZAD("姓名") = jSon("words_result")("姓名")("words")
        ZAD("性别") = jSon("words_result")("性别")("words")
        ZAD("出生日期") = jSon("words_result")("出生")("words")
        ZAD("身份号码") = jSon("words_result")("公民身份号码")("words")
        ZAD("民族") = jSon("words_result")("民族")("words")
        ZAD("住址") = jSon("words_result")("住址")("words")
    End If
    
    Rem 写入数组并输出
    ERX = ZAD.keys
    ReDim DRX(0 To UBound(ERX), 0 To 1)
    For X = 0 To UBound(ERX)
        DRX(X, 0) = ERX(X)
        DRX(X, 1) = ZAD(ERX(X))
    Next
    
    Set SHD = Worksheets("test")
    SHD.Range("A:B").ClearContents
    SHD.Range("A1").Resize(UBound(DRX, 1) + 1, UBound(DRX, 2) + 1) = DRX
    
    MsgBox UBound(DRX, 1), vbInformation, "识别成功"
End Sub




  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Excel VBA调用金蝶云星空API,您可以按照以下步骤进行操作: 1. 首先,确保您的计算机已安装了金蝶云星空的开发工具包(SDK)并进行了正确的配置。 2. 在Excel中,按下“ALT+F11”键,打开Visual Basic for Applications(VBA)编辑器。 3. 在VBA编辑器中,导航到“工具”菜单,选择“引用”。 4. 在“引用”对话框中,选择“浏览”,然后找到并选择金蝶云星空的SDK安装目录。 5. 在SDK安装目录中,找到并选择对应的API接口文件,通常是一个名为“Kingdee.BOS.WebApi.Client.dll”的文件。 6. 单击“确定”按钮,然后等待引用的添加。 7. 现在,您已经成功引用了金蝶云星空的API接口文件,可以在VBA代码中调用相关方法了。 8. 您可以使用VBA的对象和函数来实例化金蝶云星空的API接口,调用所需的服务和操作。 9. 例如,您可以创建一个新的对象来调用金蝶云星空的用户服务接口,并使用其中的方法来获取、创建或更新用户信息。 10. 在代码中,您还可以设置相关的参数、验证身份、处理返回的数据等等。 11. 当您完成代码编写后,您可以按下“F5”键或点击“运行”按钮来执行代码并调用金蝶云星空的API接口。 总之,通过在Excel VBA中引用金蝶云星空的API接口文件,您可以方便地调用并集成金蝶云星空的功能和数据,从而实现更高效的数据管理和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码猩

如果可以请支持我一下哟!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值