Excel 是一款廣泛使用的數據處理軟件,在數據處理中扮演著重要的角色。在現在的數據處理和管理中,JSON文件已經成為了一種常見的數據格式。在 Excel 中,我們也可以很簡單地將數據轉換為 JSON 格式,并導出保存為 JSON 文件。
Sub ConvertToJson()
Dim xml_obj As Object
Dim json_obj As Object
Dim json_text As String
Set xml_obj = CreateObject("MSXML2.DOMDocument")
Set json_obj = CreateObject("Scripting.Dictionary")
' 將 Excel 中的數據轉換為 JSON
xml_obj.LoadXML ActiveSheet.UsedRange.Value(xlRangeValueXMLSpreadsheet)
json_obj("data") = ConvertToJsonArray(xml_obj)
' 將 JSON 轉換為文本
json_text = JsonConverter.ConvertToJson(json_obj)
' 導出 JSON 文件
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim file As Object
Set file = fso.CreateTextFile("data.json", True)
file.WriteLine json_text
file.Close
MsgBox "導出成功!"
End Sub
Function ConvertToJsonArray(xml_obj As Object) As Variant
Dim arr() As Variant
Dim row As Object
Dim col As Object
Dim cell_value As Variant
ReDim arr(1 To xml_obj.SelectNodes("http://Row").Length)
For Each row In xml_obj.SelectNodes("http://Row")
ReDim Preserve arr(1 To row.SelectNodes("Cell").Length)
For Each col In row.SelectNodes("Cell")
cell_value = col.SelectSingleNode("Data").Text
If IsNumeric(cell_value) Then
arr(UBound(arr)) = CDec(cell_value)
Else
arr(UBound(arr)) = cell_value
End If
ReDim Preserve arr(1 To UBound(arr) + 1)
Next col
ReDim Preserve arr(1 To UBound(arr) - 1)
Next row
ConvertToJsonArray = arr
End Function
上述代碼將Excel中選定范圍內的數據轉換為 JSON,其中 ConvertToJsonArray 函數將每個單元格的值轉換為數組中的元素。通過此代碼,我們可以很方便地將 Excel 數據轉換為 JSON 格式,并進行導出保存。