在Excel函数中将十六进制字符串转换为base64

问题描述 投票:2回答:1

我有一个很长的十六进制值字符串转换为base64。

我正在寻找一个简单的格式单元格函数,如=Hex2b64(Hexstring),它将接受任何长度的十六进制字符。

我一直在使用http://home.paulschou.net/tools/xlate/手动进行转换。转换工作,所有相关数据库都会收到数据,并进行适当的解析。

我收到的数据是十六进制表示二进制,它已被转换为多个块,并根据我不知情的项目文档连接成长十六进制字符串。

典型的输入字符串是:

Hex= 00014088F6650101393939393939392D30304646463238313030000343332353430342D35353FA10000002805900100002805

相应的输出将是:

B64 = AAFAiPZlAQE5OTk5OTk5LTAwRkZGMjgxMDAAA0MzI1NDA0LTU1P6EAAAAoBZABAAAoAF
excel vba base64 hex
1个回答
5
投票
Function Hex2Base64(ByVal sHex)

    Static oNode As Object
    Dim a() As Byte

    If Len(sHex) Mod 2 <> 0 Then
        sHex = Left(sHex, Len(sHex) - 1) & "0" & Right(sHex, 1)
    End If
    If oNode Is Nothing Then
        Set oNode = CreateObject("MSXML2.DOMDocument").createElement("Node")
    End If
    With oNode
        .text = ""
        .dataType = "bin.hex"
        .text = sHex
        a = .nodeTypedValue
        .dataType = "bin.base64"
        .nodeTypedValue = a
        Hex2Base64 = .text
    End With

End Function
© www.soinside.com 2019 - 2024. All rights reserved.