Я прошел Сохранение листа Excel в виде файла JSON, что помогло мне преобразовать таблицу EXCEL в формат JSON, но я хотел бы добавить некоторые дополнительные поля в этот файл JSON.
Я прошу следующую информацию в первом листе
- Ваш ID: A001
- Имя: мое имя
- Элемент списка: октябрь-2018
[ Мой 2-й лист ]
Эта информация будет общей для данных, введенных на втором листе
При создании файла JSON я хочу добавить "Автоматически" следующие 3 поля (принято на листе 1) в каждую запись для JSON, который я создаю из листа Sheet2
- Ваш ID: A001
- Имя: мое имя
- Элемент списка: октябрь-2018
Я использую следующий код VBA для создания JSON
Public Sub xls2json()
savename = "xls2json.json"
Dim wkb As Workbook
Dim wks As Worksheet
Set wkb = ThisWorkbook
Set wks = wkb.Sheets(2)
lcolumn = wks.Cells(4, Columns.Count).End(xlToLeft).Column
lrow = wks.Cells(Rows.Count, "A").End(xlUp).Row
Dim titles() As String
ReDim titles(lcolumn)
For i = 1 To lcolumn
titles(i) = wks.Cells(4, i) 'titles are taken from this row
Next i
json = "["
dq = """"
For J = 5 To lrow ' data picked from this row onwards
For i = 1 To lcolumn
If i = 1 Then
json = json & "{"
End If
cellvalue = wks.Cells(J, i)
json = json & dq & titles(i) & dq & ":" & dq & cellvalue & dq
If i <> lcolumn Then
json = json & ","
End If
Next i
json = json & "}"
If J <> lrow Then
json = json & ","
End If
Next J
json = json & "]"
myFile = Application.DefaultFilePath & "\" & savename
Open myFile For Output As #1
Print #1, json
Close #1
a = MsgBox("Saved as " & savename, vbOKOnly)
End Sub