您的位置:首页 > Web前端 > JavaScript

【JavaScript】自制的Excel变Json工具

2018-09-01 10:36 681 查看
有时候我们需要将Excel的内容变成Json,虽然这些工具在如同在《【jQuery】jQuery对本地json的读取和遍历》(https://my.oschina.net/u/3776619/blog/1813174)所提到的,网上一搜一大把,但是这完全可以自己用Javascript自己写。

其实这也是涉及一个,如何用Javascript将一个二维表搞成Json的问题了。

以下是我自制的一个Excel变Json工具:



既然是自用的工具就无须这么高端,更何况Javascript也无法对文件进行操作。只须满足将Excel的内容copy过来,放到一个textarea里面,点击“转换”按钮,就会出现Json即可。

要完成这个转换,首先明白Excel复制过来的内容是,单元格与单元格之间是用\t隔开的,而行与行之间是用\r\n隔开的。如下图所示。





首先javascript是有split函数的,这就好办了,分别以split("\r\n")分开行,再用split("\t")分开每一单元格。

之后关键是我们需要拼出一个Json字符串。

二维表变Json就是将每一行的内容放到一个Json,也就是{'key1':''value1','key2':''value2'}之内,而所有的行将组成一个json数组[{},{},{}]。

所以上来和收尾先来个[和],然后就是两个for的事情,上述效果的代码如下:

<html>
<body>
<textarea id="excel" rows="10" cols="80"></textarea><br>
<button onclick="convert()">转换</button><br>
<p id="json">
</p>
<script>
function convert(){
var excel=document.getElementById("excel").innerHTML;
var row=excel.split("\r\n");
var header_row=row[0].split("\t");
var json_str="[";

for(var i=1;i<row.length;i++){
json_str+="{";
var cell=row[i].split("\t");
for(var j=0;j<cell.length;j++){
json_str+="'"+header_row[j]+"':'"+cell[j]+"'";
if(j!=cell.length-1){
json_str+=","
}
}
json_str+="}";
if(i!=row.length-1){
json_str+=","
}
}
json_str+="]";
document.getElementById("json").innerHTML=json_str;
}
</script>
</body>
</html>

由于这里,json的收尾的是不能有,存在的,所以在循环中,我们要判断是不是最后一个,若不是,才加,。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jQuery