2011-01-28 65 views
1

我有这样的Excel表格:Excel的各种JSON对象

 
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 ConverterGoogle Refine

谢谢!

+0

你想一个预先包装的解决方案,或者是一个纲领性的版本好吗? – 2011-01-28 14:51:23

回答

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

布鲁斯

0

有时我只是用简单的字符串concatanation生成SQL语句,想你可以这样做:

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

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