【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

相關文章
相關標籤/搜索