2011-01-28 51 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鎖定該行