【JavaScript】自制的Excel变Json工具

有时候咱们须要将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

相关文章
相关标签/搜索