Excel à divers objets JSON
-
26-10-2019 - |
Question
J'ai ce tableau Excel:
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
Je voudrais expérimenter deux formats JSON. Soit:
data = [
Netherlands : {
1970 : [3603, 4330, 5080, 5820],
1971 : [...],
},
Sweden : {
1970 : [...]
},
]
Ou en utilisant les en-têtes 1,2,3,4 comme valeurs x:
data = [
Netherlands : {
1970 : [{x: 1, y: 3603}, {x: 2, y: 4330}, {x: 3, y: 5080}, {x: 4, y: 5820}],
1971 : [...],
},
Sweden : {
1970 : [...]
},
]
Comment puis-je obtenir facilement à partir d'Excel à mes formats JSON préférés?
S'il vous plaît suggérer des méthodes spécifiques pour cette transformation ainsi que des outils de conversion de données génériques comme l'excellent Mr Data Converter Google Affiner .
Merci!
La solution
Vous pouvez télécharger un ensemble de classes qui convertissent les données Excel pour JSON d'ici. http://ramblings.mcpher.com/Home/excelquirks/downloadlist . Le projet que vous voulez est «cours de manipulation de données.
En utilisant ces classes, ce 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
est tous les thats nécessaires pour produire ce à partir de vos données.
{ "data": {
"country": "Sweden",
"year": "1972",
"1": "1419",
"2": "1894",
"3": "2445",
"4": "3055"
}
}
Vous pouvez faire plus de choses complexes, ou adapter la sortie, après avoir lu cet article sur la façon dont cela fonctionne. http://ramblings.mcpher.com/Home/excelquirks / recursionlink / cache-données-in-excel-objets
bruce
Autres conseils
Je parfois simplement utiliser simple chaîne concatanation pour générer des instructions SQL, devinez que vous pourriez faire quelque chose comme:
=A2 + ": { " + A3 + ", " + A4 + ", " + A5 + ", " + A... +"}"
Que l'envelopper dans data = []
, ou utiliser une formule de fantaisie .. Pour la deuxième partie, vous devez verrouiller la ligne avec $ A1