Excel per vari oggetti JSON
-
26-10-2019 - |
Domanda
Ho questa tabella di 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
Vorrei sperimentare con due formati JSON. O:
data = [
Netherlands : {
1970 : [3603, 4330, 5080, 5820],
1971 : [...],
},
Sweden : {
1970 : [...]
},
]
o utilizzando le intestazioni 1,2,3,4 come valori x:
data = [
Netherlands : {
1970 : [{x: 1, y: 3603}, {x: 2, y: 4330}, {x: 3, y: 5080}, {x: 4, y: 5820}],
1971 : [...],
},
Sweden : {
1970 : [...]
},
]
Come faccio a ottenere facilmente da Excel ai miei formati JSON preferiti?
Si prega di suggerire metodi specifici per questa trasformazione, nonché strumenti di conversione di dati generici come l'eccellente Signor Data Converter Google Refine .
Grazie!
Soluzione
È possibile scaricare un insieme di classi che convertono i dati di Excel a JSON da qui. http://ramblings.mcpher.com/Home/excelquirks/downloadlist . Il progetto che si desidera è 'classi di manipolazione dei dati'.
Utilizzando queste classi, questo codice
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
è tutti i thats necessari per produrre questo dai dati.
{ "data": {
"country": "Sweden",
"year": "1972",
"1": "1419",
"2": "1894",
"3": "2445",
"4": "3055"
}
}
Si può fare cose più complesse, o su misura l'uscita, dopo aver letto questo articolo su come funziona. http://ramblings.mcpher.com/Home/excelquirks / recursionlink / nascondiglio data-in-excel-oggetti
Bruce
Altri suggerimenti
A volte basta usare semplice concatanation stringa per generare istruzioni SQL, che si potrebbe fare qualcosa di simile:
=A2 + ": { " + A3 + ", " + A4 + ", " + A5 + ", " + A... +"}"
Che avvolge all'interno data = []
, o utilizzare una formula di fantasia .. Per la seconda parte si deve bloccare la fila con $ A1