【发布时间】:2016-08-24 14:49:55
【问题描述】:
我正在尝试使用 Base64 将图像插入到带有 VBA 的工作表中,但我在任何地方都找不到如何正确执行此操作的示例。
我为图像设置了一个字符串,例如:
vLogo = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZoAAABfCAY"
我只想执行以下操作,但不是寻找图像文件,而是将图像存储在 VBA 中。
Sheets("Sheet1").Pictures.Insert (Application.ActiveWorkbook.Path & "\vLogo.png")
我什至看过做类似的事情:
' Write the image to file
Dim myFile As String
myFile = Application.ActiveWorkbook.Path & "\temp.png"
Open myFile For Output As #1
Write #1, vLogo
Close #1
' Insert the image
Sheets("Sheet1").Pictures.Insert (Application.ActiveWorkbook.Path & "\temp.png")
' Delete the temp file
Kill Application.ActiveWorkbook.Path & "\temp.png"
但我不知道如何将 base64 编码的图像写入文件。
【问题讨论】:
-
这是一个 Base64 库。见:source-code.biz/snippets/vbasic/12.htm
-
我以前写过VB6/VBA Base64 class 方式。请注意,由于字符串转换,某些 Unicode 编码存在一些问题。这可能是一个好的开始。
-
@RyanWildry 我已经尝试过了,我应该做什么不是很清楚,我遇到的第一个问题是我的变量不是 4 的倍数,所以我删除了该部分:
data:image/png;base64,然后一旦它似乎解码我无法插入,因为它不是被发送到图片插入的图片。 -
iVBORw0KGgoAAAANSUhEUgAAAZoAAABfCAY实际上对图像进行编码吗? -
@RobinMackenzie 不,这不是真实的图像,因为实际的图像有 80 多行,会非常混乱。