欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

excel轉json vba

劉柏宏2年前12瀏覽0評論

Excel轉json是一種十分實用的功能,而使用VBA編寫程序進行轉換則可以更加方便快捷。以下是一份較為詳細的VBA代碼,供大家參考:

Sub Excel2Json()
Dim i As Long, j As Long
Dim row As Range, col As Range
Dim jsonObj As Object, jsonArr As Object
Dim tempStr As String
Set jsonObj = CreateObject("Scripting.Dictionary")
Set jsonArr = CreateObject("Scripting.Dictionary")
For j = 1 To ActiveSheet.UsedRange.Columns.Count
Set col = ActiveSheet.UsedRange.Columns(j)
For i = 1 To col.Cells.Count
tempStr = Trim(col.Cells(i).Text)
If tempStr<>"" Then
If Not jsonObj.Exists(tempStr) Then
jsonObj.Add tempStr, col.Cells(i).Offset(0, 1).Text
Else
If TypeName(jsonObj(tempStr)) = "String" Then
jsonArr.Add tempStr, Array(jsonObj(tempStr), col.Cells(i).Offset(0, 1).Text)
jsonObj.Remove tempStr
jsonObj.Add tempStr, jsonArr(tempStr)
Else
jsonArr(tempStr) = Array(jsonArr(tempStr)(0), col.Cells(i).Offset(0, 1).Text)
jsonObj.Remove tempStr
jsonObj.Add tempStr, jsonArr(tempStr)
End If
End If
End If
Next i
Next j
tempStr = JsonConverter.ConvertToJson(jsonObj)
Debug.Print tempStr
End Sub

這段代碼的作用是遍歷Excel中的每一個單元格,將其中的內容轉換成json格式。其中用到了VBA中自帶的Scripting.Dictionary對象,來構造json對象。具體實現過程如下:

  • 首先創建一個字典對象jsonObj,用于保存Excel中的單元格數據。
  • 然后遍歷Excel中的每一個單元格,并將其中的內容以"鍵-值"的形式存入jsonObj中。值的存儲方式為:
    • 若一個鍵對應多個值,則將這些值存儲在一個數組中,并將這個數組作為該鍵的值。
    • 若一個鍵只對應一個值,則直接將這個值存入字典中。
  • 最后將構造好的jsonObj通過對象轉換器JsonConverter轉換成json格式并輸出。

值得注意的是,以上代碼中使用了第三方的JsonConverter對象。在使用前需要先引用相關庫,無法直接使用,需自行下載安裝。