有时候咱们须要将Excel的内容变成Json,虽然这些工具在如同在《【jQuery】jQuery对本地json的读取和遍历》(http://www.javashuo.com/article/p-wjfyuycq-ku.html)所提到的,网上一搜一大把,可是这彻底能够本身用Javascript本身写。javascript
其实这也是涉及一个,如何用Javascript将一个二维表搞成Json的问题了。html
如下是我自制的一个Excel变Json工具:java
既然是自用的工具就无须这么高端,更况且Javascript也没法对文件进行操做。只须知足将Excel的内容copy过来,放到一个textarea里面,点击“转换”按钮,就会出现Json便可。json
要完成这个转换,首先明白Excel复制过来的内容是,单元格与单元格之间是用\t隔开的,而行与行之间是用\r\n隔开的。以下图所示。数组
首先javascript是有split函数的,这就好办了,分别以split("\r\n")分开行,再用split("\t")分开每一单元格。函数
以后关键是咱们须要拼出一个Json字符串。工具
二维表变Json就是将每一行的内容放到一个Json,也就是{'key1':''value1','key2':''value2'}以内,而全部的行将组成一个json数组[{},{},{}]。.net
因此上来和收尾先来个[和],而后就是两个for的事情,上述效果的代码以下:excel
<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的收尾的是不能有,存在的,因此在循环中,咱们要判断是否是最后一个,若不是,才加,。code