Excel zu verschiedenen JSON -Objekten
-
26-10-2019 - |
Frage
Ich habe diese Excel -Tabelle:
country year 1 2 3 4 Netherlands 1970 3603 4330 5080 5820 Netherlands 1971 3436 4165 4929 5693 Netherlands 1972 3384 4122 4899 5683 Sweden 1970 1479 1963 2520 3132 Sweden 1971 1497 1985 2547 3163 Sweden 1972 1419 1894 2445 3055
Ich möchte mit zwei JSON -Formaten experimentieren. Entweder:
data = [
Netherlands : {
1970 : [3603, 4330, 5080, 5820],
1971 : [...],
},
Sweden : {
1970 : [...]
},
]
Oder verwenden die Header 1,2,3,4 als X-Werte:
data = [
Netherlands : {
1970 : [{x: 1, y: 3603}, {x: 2, y: 4330}, {x: 3, y: 5080}, {x: 4, y: 5820}],
1971 : [...],
},
Sweden : {
1970 : [...]
},
]
Wie komme ich leicht von Excel zu meinen bevorzugten JSON -Formaten?
Bitte schlagen Sie spezifische Methoden für diese Transformation sowie generische Datenkonvertierungstools wie das hervorragende Vorsprung vor MR -Datenkonverter und Google Refine.
Vielen Dank!
Lösung
Sie können eine Reihe von Klassen herunterladen, die Excel -Daten von hier in JSON konvertieren. http://ramblings.mcpher.com/home/excelquirks/downloadList. Das gewünschte Projekt sind "Datenmanipulationsklassen".
Verwenden dieser Klassen dieser Code
Option Explicit
Public Sub mainExample()
Dim dSet As cDataSet
Set dSet = New cDataSet
With dSet
.populateData Range("data!$a$1"), , , , , , True
If .Where Is Nothing Then
MsgBox ("No data to process")
Else
MsgBox .jSonObject
End If
End With
End Sub
Ist alles, was benötigt wird, um dies aus Ihren Daten zu produzieren.
{ "data": {
"country": "Sweden",
"year": "1972",
"1": "1419",
"2": "1894",
"3": "2445",
"4": "3055"
}
}
Sie können komplexere Dinge tun oder die Ausgabe anpassen, nachdem Sie diesen Artikel darüber gelesen haben, wie er funktioniert. http://ramblings.mcpher.com/home/excelquirks/recursionlink/hiding-data-in-excel-objects
Bruce
Andere Tipps
Manchmal verwende ich einfach eine einfache String -Concatanation, um SQL -Anweisungen zu generieren. Ich denke, Sie könnten so etwas tun wie:
=A2 + ": { " + A3 + ", " + A4 + ", " + A5 + ", " + A... +"}"
Als innen einwickeln data = []
, oder verwenden