有一个Excel工作簿自己发布到web服务:如何获取字节?

我正在写一个Excelmacros,将工作簿发布到HTTP Web服务。 我正在寻找使用ServerXMLHTTP

 Sub PostSelf() Dim URL, objHTTP Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") URL = "http://someService/" objHTTP.Open "POST", URL, False objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.send ("") End Sub 

根据文档 ,“send”方法接受一个可选的参数,requestBody使用可接受的VARIANTinputtypes是UI1的BSTR,SAFEARRAY(无符号字节)。

假设工作簿被保存,我怎样才能检索工作簿的字节作为UI1的SAFEARRAY?

 With CreateObject("ADODB.Stream") .Type = 1 ' Binary stream .Open .LoadFromFile ThisWorkbook.FullName .Position = 0 arrBuffer = .Read ' get the whole binary MsgBox TypeName(arrBuffer) ' Byte() MsgBox .Size ' Length in bytes End With 

UPD:二进制模式stream实例.Write方法获取Variant数据types参数,它包含一个字节数组, .Read方法的输出数据types是相同的,这个方法只是将结果转换为Variant数据types来提供灵活性和兼容性,并且由此产生的variables将包含字节数组Bytes() – 由于隐式types转换,我们使用VB而不是C。