excel通过vbs导出json文件
朋友怎么把excel数据导成json,就去研究了一番。
晚上找到的一段vba代码有2个问题一个是不能修改标签页的名字,一个是存储的json文件明带上了.xlsm的后缀。
修改后发上来。
一、excel 2007 创建能使用宏的xlsm文件
Sub ToJson() '创建UTF8文本文件
myrange = Worksheets(ActiveSheet.Name).UsedRange '通过有效数据区来选择数据 ActiveSheet.Name当前sheet标签的名字
'myrange = ActiveWorkbook.Names("schoolinfo").RefersToRange '通过定义的名称来选择数据
'myrange = Range(Worksheets("sheet1").Range("a1").End(xlDown), Worksheets("sheet1").Range("a1").End(xlToRight)) '通过标题行的最大行最大列来选择数据
Total = UBound(myrange, 1) '获取行数
Fields = UBound(myrange, 2) '获取列数
Dim objStream As Object
Set objStream = CreateObject("ADODB.Stream")
With objStream
.Type = 2
.Charset = "UTF-8"
.Open
.WriteText "{""total"":" & Total & ",""contents"":["
For i = 2 To Total
.WriteText "{"
For j = 1 To Fields
.WriteText """" & myrange(1, j) & """:""" & Replace(myrange(i, j), """", "\""") & """"
If j <> Fields Then
.WriteText ","
End If
Next
If i = Total Then
.WriteText "}"
Else
.WriteText "},"
End If
Next
.WriteText "]}"
.SaveToFile ActiveWorkbook.Path & "/" & ActiveSheet.Name & ".json", 2
End With
Set objStream = Nothing
End Sub
完整代码如上,
代码复制进去,跟着下面的截图操作
大功告成!(*^▽^*)