Excel转Json方法汇总

时间:2024-03-04 14:31:23

百度经验有提到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\'