Pregunta

Tengo esta mesa de 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

Me gustaría experimentar con dos formatos JSON. O:

data = [
   Netherlands : {
      1970 : [3603, 4330, 5080, 5820],
      1971 : [...],
   },
   Sweden : {
      1970 : [...]
   },
]

O usando los encabezados 1,2,3,4 como valores X:

data = [
   Netherlands : {
      1970 : [{x: 1, y: 3603}, {x: 2, y: 4330}, {x: 3, y: 5080}, {x: 4, y: 5820}],
      1971 : [...],
   },
   Sweden : {
      1970 : [...]
   },
]

¿Cómo llego fácilmente de Excel a mis formatos JSON preferidos?

Sugiera métodos específicos para esta transformación, así como herramientas genéricas de conversión de datos como el excelente MR Converter de datos y Google Refine.

¡Gracias!

¿Fue útil?

Solución

Puede descargar un conjunto de clases que convierten los datos de Excel a JSON desde aquí. http://ramblings.mcpher.com/home/excelquirks/downloadlist. El proyecto que desea es 'clases de manipulación de datos'.

Usando estas clases, este código

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

es todo lo que se necesita para producir esto a partir de sus datos.

{  "data": {
        "country": "Sweden",
        "year": "1972",
        "1": "1419",
        "2": "1894",
        "3": "2445",
        "4": "3055"
  }
}

Puede hacer cosas más complejas o adaptar la salida, después de leer este artículo sobre cómo funciona. http://ramblings.mcpher.com/home/excelquirks/recursionlink/hiding-data-in-excel-objects

bruce

Otros consejos

A veces solo uso la concatanación de cadena simple para generar declaraciones SQL, supongo que podrías hacer algo como:

=A2 + ": { " + A3 + ", " + A4 + ", " + A5 + ", " + A... +"}"

Que envolverlo dentro data = [], o use una fórmula elegante ... para la segunda parte debe bloquear la fila con $ a1

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top