Speichern der Excel-Tabelle als JSON-Datei

4001
Bjorn Reppen

Gibt es eine einfache Möglichkeit, eine einfache Excel-Tabelle in eine JSON-Datei zu konvertieren?

Das Quellblatt könnte zum Beispiel so aussehen:

 A B 1 firstName age 2 Alice 22 3 Bob 33 

und der gespeicherte JSON:

[, ] 
0
Wenn Sie auf "table to json" googeln, erhalten Sie mehrere Lösungen, z. B. [this] (http://www.convertcsv.com/csv-to-json.htm). Máté Juhász vor 6 Jahren 3

2 Antworten auf die Frage

3
JanHudecek

Wenn Sie möchten, dass das Skript tatsächlich beendet wird, bevor Sie ein Rentner sind, schlage ich vor, die Ausgabedatei sofort zu schreiben, anstatt den String var zu verketten:

Public Sub tojson() savename = "exportedxls.json" myFile = Application.DefaultFilePath & "\" & savename Open myFile For Output As #1 Dim wkb As Workbook Dim wks As Worksheet Set wkb = ThisWorkbook Set wks = wkb.Sheets(1) lcolumn = wks.Cells(1, 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(1, i) Next i Print #1, "[" dq = """" For j = 2 To lrow For i = 1 To lcolumn If i = 1 Then Print #1, "{" End If cellvalue = wks.Cells(j, i) Print #1, dq & titles(i) & dq & ":" & dq & cellvalue & dq If i <> lcolumn Then Print #1, "," End If Next i Print #1, "}" If j <> lrow Then Print #1, "," End If Next j Print #1, "]" Close #1 a = MsgBox("Saved as " & savename, vbOKOnly) End Sub 
2
jcbermu

Dieser VBA-Code wird funktionieren:

Public Sub tojson() savename = "exportedxls.json" Dim wkb As Workbook Dim wks As Worksheet Set wkb = ThisWorkbook Set wks = wkb.Sheets(1) lcolumn = wks.Cells(1, 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(1, i) Next i json = "[" dq = """" For j = 2 To lrow 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 

Öffnen Sie VBA / Macros mit ALT+ F11.

Doppelklicken Sie auf der linken Seite auf Das Arbeitsblatt, auf der rechten Seite fügen Sie den Code ein.

Setzen Sie die Variable savenameauf den gewünschten Namen für die Json-Datei und das ist alles.