百度經驗有提到office的加載項“Excel to Json”,但是現在office商店好像已經沒有這款加載項了。
網上有不少大神寫了小工具用於轉Json,這里記錄一下我用過且體驗不錯的。
方法一、https://blog.csdn.net/woduoxiangfeiya/article/details/50767408
這個步驟詳細,對於結構稍微復雜一點的表格也完美適用!主要思想就是標題分級拼接字符串
“在開始拼接字符串之前先要創建一個新的Sheet工作頁並且將原來表中的數據復制到這個Sheet中,在這個新的Sheet頁面中進行操作,這是因為如果在原表中直接拼接字符串是會報循環引用的錯誤的。以此為例應該顯示為"nan.year_1.age_0":120,這是json數據的第一項,所以應該點擊B5這一項然后開始在上面的輸入框里輸入IF函數。首先是看一下引用表格的名稱。然后以這個為名使用IF函數,IF函數的語法為if(a=1,b=2,b=3)如果a=1成立則b=2否則b=3(注:因為excel版本的問題如果出現報錯,則將if函數中的分隔符從‘ ,’變成‘ ;’,即為if(a=1;b=2;b=3))。現在以B5不為空為條件(條件可以靈活選取),成立則拼接字符串,不成立為空。首先進行IF函數的條件拼接,(費率表!B5<>""),其中(費率表!)的含義是指B5這一欄是名字叫(費率表)的表中的格子,(B5<>"")的含義是B5不為空,其中的(<>)符號為不等於的意思。然后選擇最開始的一個數據來拼接字符串,本表就為("nan.year_1.age_0":120,)。首先拼冒號前的部分("""&B$3&B$4&"age_"&$A5"""),其中&符號為拼接符用來使各個字符拼接在一起,$符號表示對數據區域的絕對引用,即(B$3)中對3絕對引用,無論將這一公式套用到表中的哪個格子中都會是(*3)的模式即無論哪一列情況下總是在第3行,同理($A5)就是無論哪一行的情況下總是在A列,為什么必須在正確的地方使用$ 符號,這一點將在下面的部分解釋,其中的冒號使用(”:“)表示,冒號后面的值當然就是(費率表!B$5),IF條件不成立時即如果B5為空的情況為(”“)。現輸入框中的函數整體為(= IF(費率表!B5<>" ",""""&B$3&B$4&"age_"&$A5&""""&":"&費率表!B5&","," ")),因為冒號前的部分為字符串格式所以需要用引號引起來導致兩邊加上一對引號,然后點擊左邊的fx或者√都可以執行函數。
原來的120.0現在變成(“nan.year_1.age_0”:120,)即達到了我們想要的效果。現在讓這個函數適用於所有的格子,只需要選中(“nan.year_1.age_0”:120,)這一個格子將鼠標移動到當前這個格子的右下角,鼠標就會變成一個實體的黑十字,然后按住鼠標左鍵向右拖動就會使第一行全部適用函數,然后再從每一行第一個格子使用同樣方法向下拖動就會使整個表格全部實現想要的效果。(注:在這里就可以看到如果在&B$3中沒有使用$符號的話向下拉動時B列不能夠保證函數一直引用的是第3行和第4行的信息即不能保證為nan.year_1這種格式,在$A5中同樣不能保證向右拉動時一直引用A列的數據)。
————————————————
版權聲明:本文為CSDN博主「woduoxiangfeiya」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。”
作業:
方法二、在線工具https://www.bejson.com/json/col2json/
個人測試是只能用於結構簡單的表格,比如方法一中的那個表這個轉化就會很亂,可能也是我還不會用。。
JSON格式化網站:http://www.bejson.com/
ps:sublime可以使用JSFormat進行格式化,注意最后一行中括號前不能有逗號,否則會報錯:json解析錯誤:期望是 'STRING'