需求原因,需要使用excel的VBA语句将数据处理完之后转换成指定的XML格式,一开始使用了Set fs = CreateObject("Scripting.FileSystemObject")直接写入文件,但是因为是GBK的格式,中文在系统中显示乱码。
故在搜索之后,采用了以下方式,指定了UTF-8格式输出文本文件。
'将文字本输入流改成ADO流
Dim WriteStream As Object, BinSt As Object
Dim name As String
Dim nameto As String
Set WriteStream = CreateObject("ADODB.Stream")
Set BinSt = CreateObject("ADODB.Stream")
nameto = ThisWorkbook.Path & ‘文件名.xml’
With WriteStream
.Open
.Charset = "UTF-8"
.Type = 2 'adTypeText (文本)
.WriteText ("<?xml version=""1.0"" encoding=""utf-8"" ?>" & Chr(10))