Вопрос

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

Благодарю вас!

Это было полезно?

Решение

Вы можете скачать набор классов, которые преобразуют данные 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

Брюс

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top