這里使用了vba如下兩個(gè)對(duì)象:
Microsoft.XMLHTTP
:文件讀寫,可讀寫二進(jìn)制,可指定編碼,對(duì)于utf-8編碼文本文件使用FSO的TextStream對(duì)象打開,讀取到的內(nèi)容可能會(huì)出現(xiàn)亂碼,可以使用該對(duì)象打開;前期綁定添加引用:Microsoft ActiveX Data Objects 2.8
Microsoft.XMLHTTP
:發(fā)送請(qǐng)求并獲得返回,前期綁定添加:Microsoft XML v6.0
下載案例如下:下載火影忍者的圖片到當(dāng)前工作簿目錄下
圖片鏈接為:https://i0.hdslb.com/bfs/article/cb84523da172b11eb6222eb12f3c1737953f0359.jpg
Sub photo_download()
' 下載圖片
Dim X As Object
Dim ASTeam As Object
Dim content() As Byte
Set X = CreateObject("Microsoft.XMLHTTP")
Set ASTeam = CreateObject("ADODB.Stream")
With X
.Open "get", "https://i0.hdslb.com/bfs/article/cb84523da172b11eb6222eb12f3c1737953f0359.jpg", False
.send
Do Until .readystate = 4
DoEvents
Loop
content = .responsebody ' 請(qǐng)求返回對(duì)象
End With
With ASTeam
.Type = 1 ' 二進(jìn)制類型
.Mode = 3 ' 可讀可寫
.Open '打開文件
.write content ' 文件寫入
.savetofile ThisWorkbook.Path & "/火影忍者.jpg" ' 文件另存
.Close ' 關(guān)閉
End With
MsgBox "download done"
End Sub
關(guān)于ADODB.Stream
的幾個(gè)屬性說明:
- Type屬性:讀寫文本文件用adTypeText(2),讀寫二進(jìn)制文件用adTypeBinary(1)。
- Mode屬性:使用adModeReadWrite(3),可讀寫。
- CharSet屬性:指定文件編碼,要根據(jù)文本文件的編碼來設(shè)定。比如
utf-8
如果使用后期綁定的方式,該屬性只能通過枚舉常量的等價(jià)數(shù)字定義,比如type的2表示讀寫文本文件
ADODB.Stream
文本幾個(gè)方法:LoadFromFile
:加載文本文件ReadText
:讀取,ReadText(10)表示讀取10個(gè)字符,不帶數(shù)字表示讀取文本剩余所有內(nèi)容:ReadAllclose
:同二進(jìn)制文件,表示關(guān)閉對(duì)象,讀寫后關(guān)閉WriteText
:寫入記錄行,chr(10)
表示換行SaveToFile
:保存為文本文件文章來源:http://www.zghlxwxcb.cn/news/detail-595527.html
文件讀寫樣例文章來源地址http://www.zghlxwxcb.cn/news/detail-595527.html
Sub file_read_write()
' 文本讀寫案例
' Dim ASteam As ADODB.Stream ' 前期引用綁定,直接聲明對(duì)象即可
Dim ASteam As Object
dim txt_path,s1,s2 as String
Set ASteam = CreateObject("ADODB.Stream") ' 創(chuàng)建對(duì)象
txt_path = ThisWorkbook.Path & "/文本文件.txt" ' 文本文件路徑
With ASteam
' 文件寫入
.Type = 2 ' adTypeText ' 指定類型
.Mode = 3 ' adModeReadWrite ' 可讀寫
.Charset = "utf-8" ' 指定編碼格式
.Open ' 打開
.WriteText "寫入一行數(shù)據(jù)"
.WriteText Chr(10) ' 寫入換行符
.WriteText "寫入第二行數(shù)據(jù)"
.SaveToFile txt_path, adSaveCreateOverWrite ' 文件如果存在則覆蓋
' 文件讀取
.LoadFromFile (txt_path)
s1 = .ReadText(3)
s2 = .ReadText
Debug.Print s1, s2
.Close
End With
End Sub
到了這里,關(guān)于VBA下載二進(jìn)制文件,文本讀寫的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!