Excel 處理數(shù)據(jù)非常方便,但有時需要將其轉(zhuǎn)為 JSON 格式,以便于數(shù)據(jù)在不同平臺之間的共享和處理。下面是一個簡單的示例,展示如何使用 Excel 中的 VBA 編程將數(shù)據(jù)轉(zhuǎn)換為 JSON 格式。
Function Sheet2Json(sheetName As String, Optional headerRow As Long = 1) As String Dim jsonObj As New JSONLib '需要加載 JSONLib 庫 Dim jsonStr As String Dim sheet As Worksheet Dim rowCount As Long, colCount As Long Dim rowIdx As Long, colIdx As Long Dim headerValues() As Variant Set sheet = Sheets(sheetName) rowCount = sheet.Cells(Rows.Count, 1).End(xlUp).Row colCount = sheet.Cells(1, Columns.Count).End(xlToLeft).Column headerValues = sheet.Range(sheet.Cells(headerRow, 1), sheet.Cells(headerRow, colCount)).Value jsonStr = "{" For rowIdx = headerRow + 1 To rowCount jsonStr = jsonStr & IIf(rowIdx >headerRow + 1, ",", "") & vbNewLine & vbTab & jsonObj.WrapJSON("Row" & rowIdx - headerRow) & ":{" For colIdx = 1 To colCount jsonStr = jsonStr & IIf(colIdx >1, ",", "") & vbNewLine & vbTab & vbTab & jsonObj.WrapJSON(headerValues(1, colIdx)) & ":" & jsonObj.WrapJSON(sheet.Cells(rowIdx, colIdx).Value) Next colIdx jsonStr = jsonStr & vbNewLine & vbTab & "}" Next rowIdx jsonStr = jsonStr & vbNewLine & "}" Sheet2Json = jsonStr End Function
該 VBA 代碼定義了一個函數(shù)Sheet2Json
,它接受一個工作表名稱和可選參數(shù) headerRow(默認(rèn)為 1),用于指定表頭所在的行。該函數(shù)將整個表格的數(shù)據(jù)轉(zhuǎn)換為 JSON 格式,返回一個字符串形式的 JSON。
要使用此函數(shù),請按照以下步驟操作:
- 從“開發(fā)人員”選項卡中訪問 Visual Basic 編輯器。
- 在一個新的 VBA 模塊中復(fù)制上述代碼。
- 在 Excel 中打開一個包含數(shù)據(jù)的工作表。
- 從“開發(fā)人員”選項卡中訪問 Visual Basic 編輯器,在新的模塊中使用此公共函數(shù)。
完整的代碼示例可以在下面的鏈接中找到。