1

我有这个 Excel 表:

国家 年 1 2 3 4

荷兰 1970 3603 4330 5080 5820
荷兰 1971 3436 4165 4929 5693
荷兰 1972 3384 4122 4899 5683
瑞典 1970 1479 1963 2520 3132
瑞典 1971 1497 1985 2547 3163
瑞典 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 ConverterGoogle Refine

谢谢!

4

2 回答 2

1

您可以从此处下载一组将 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

布鲁斯

于 2011-06-14T21:02:45.013 回答
0

我有时只是使用简单的字符串连接来生成 SQL 语句,猜你可以这样做:

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

比把它包在里面data = [],或者使用一个花哨的公式。对于第二部分,你应该用 $A1 锁定行

于 2011-01-29T01:09:39.637 回答