【问题标题】:Excel to various JSON objectsExcel 到各种 JSON 对象
【发布时间】:2026-02-04 20:20:03
【问题描述】:

我有这个 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

谢谢!

【问题讨论】:

  • 你想要一个预打包的解决方案,还是一个程序化的版本可以?
  • Marc B:任何简单的方法都可以 :=) user257493:这个问题更具体,但链接非常有价值。

标签: javascript json excel data-conversion


【解决方案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

布鲁斯

【讨论】:

    【解决方案2】:

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

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

    将其包裹在data = [] 中,或者使用一个花哨的公式。对于第二部分,您应该使用 $A1 锁定该行

    【讨论】: