Excel表格是辦公室員工和數據分析師等職業人士最熟悉和常用的工具之一。但是,Excel表格中數據格式復雜,不利于數據分析和處理。與此同時,JSON(JavaScript對象表示法)是一種輕量級的數據交換格式,易于閱讀和編寫,并被廣泛應用于web應用程序中。因此,將Excel表格轉換為JSON文件夾是提高數據分析和數據交換效率的一種重要方式。
Sub ExcelToJson()
'設置變量
Dim i As Integer, j As Integer, k As Integer
Dim rows As Integer, columns As Integer
Dim cell As Range
Dim jsonStr As String
Dim jsonObj As New Scripting.Dictionary
Dim jsonArr As New Collection
Dim jsonArray As Collection
Dim json As Variant
'獲取表格行列數
rows = ActiveSheet.Range("A1").CurrentRegion.Rows.Count
columns = ActiveSheet.Range("A1").CurrentRegion.Columns.Count
'遍歷表格行和列
For i = 2 To rows '從第二行開始遍歷
Set jsonArr = New Collection
For j = 1 To columns
Set cell = ActiveSheet.Cells(i, j)
If cell.Value = "" Then '跳過空單元格
Continue For
End If
jsonArr.Add cell.Value '將單元格中的值添加到json數組中
Next j
jsonObj.Add ActiveSheet.Cells(i, 1).Value, jsonArr '將json數組添加到json對象中
Next i
'將json對象轉換為字符串格式
Set json = JsonConverter.ConvertToJson(jsonObj)
jsonStr = Replace(json, Chr(34), Chr(39)) '將雙引號替換為單引號
'將json字符串保存到文件夾中
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
Dim path As String
path = Application.ActiveWorkbook.Path & "\" & "output.json"
Dim f As Object
Set f = fs.CreateTextFile(path, True)
f.Write jsonStr
f.Close
MsgBox "Excel表格已成功轉換為JSON文件夾"
End Sub
以上是將Excel表格轉換為JSON文件夾的VBA示例代碼。代碼逐行解釋如下:
- 設置變量:定義了用于存儲數據、計數、以及json數據的變量
- 獲取行列數:通過Range對象獲取表格范圍內的行數和列數
- 遍歷行和列:使用兩個嵌套的循環遍歷表格范圍內的行和列,獲取每個單元格的值,并將其添加到json數組中
- 構建json對象:使用Scripting.Dictionary對象和Collection對象分別存儲表格中的行數據和列數據,并將其組成JSON對象
- 將json對象轉換為字符串:使用JsonConverter.ConvertToJson方法將json對象轉換為字符串格式,并將雙引號替換為單引號
- 將json字符串保存到文件夾中:使用FileSystemObject對象創建并寫入文件輸出流,將json字符串保存到指定文件夾中
通過使用以上代碼,我們可以輕松將Excel表格轉換為JSON文件夾,實現數據分析和交換的高效性。