Excel для различных объектов JSON - PullRequest
1 голос
/ 28 января 2011

У меня есть таблица 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

Я бы хотел поэкспериментировать с двумя форматами JSON.Либо:

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

Или используя заголовки 1,2,3,4 в качестве значений x:

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

Как мне легко перейти из Excel в мои предпочтительные форматы JSON?

Пожалуйста, предложите конкретные методы для этого преобразования, а также общие инструменты преобразования данных, такие как превосходный Mr Data Converter и Google Refine .

Спасибо!

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Вы можете скачать набор классов, которые преобразуют данные Excel в JSON, отсюда.http://ramblings.mcpher.com/Home/excelquirks/downloadlist. Требуемый вами проект - «Классы манипулирования данными».

Используя эти классы, этот код

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

- это все, что необходимо для получения этого из ваших данных.

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

Вы можете сделать более сложные вещи или настроить вывод, прочитав эту статью о том, как он работает.http://ramblings.mcpher.com/Home/excelquirks/recursionlink/hiding-data-in-excel-objects

Брюс

0 голосов
/ 29 января 2011

Иногда я просто использую простую конкатенацию строк для генерации операторов SQL, думаю, вы могли бы сделать что-то вроде:

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

Чем обернуть его внутри data = [] или использовать причудливую формулу. Для второй части вы должны заблокировать строку с помощью $ A1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...