js操作excel数据转json数据

excel----->json数据

依赖:
这里引入网上的依赖,本地以来自己去下载。

 //jquery的js库
 <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
  //sheet.js的核心库
    <script type="text/javascript" src="https://cdn.staticfile.org/xlsx/0.15.1/xlsx.core.min.js"></script>

webkitdirectory

该属性是Html中可选择文件夹(目录)的一个属性。
<div class="nav">
    <!-- webkitdirectory directory multiple -->
    <input type="file" id="excel" webkitdirectory > 
</div>

获取File

     $('#excel').change(function (e) {
			var files = e.target.files; //获取文件
			   for (let i = 0; i < files.length; i++) {
			   //文件路径
                 console.log(file[i].webkitRelativePath) 
                 //文件名
                 console.log(files[i].name)
               }
      
    });

读取excel数据并转换为json数据

 //传入一个文件
  function read(files) {
    // 以二进制方式打开文件
    if (files.length == 0) {
      return;
    }
    for (let i = 0; i < files.length; i++) {
      var fileReader = new FileReader();
      fileReader.readAsBinaryString(files[i]);
			fileReader.onload = function (ev) {
				try {
					var data = ev.target.result
					var workbook = XLSX.read(data, {
						type: 'binary'
					}); // 以二进制流方式读取得到整份excel表格对象
					persons = [];
				} catch (e) {
					return;
				}
				// 表格的表格范围,可用于判断表头是否数量是否正确
				var fromTo = '';
				// 遍历每张表读取
				for (var sheet in workbook.Sheets) {
					if (workbook.Sheets.hasOwnProperty(sheet)) {
						fromTo = workbook.Sheets[sheet]['!ref'];
						if (!fromTo) {
							return;
						}
						persons = XLSX.utils.sheet_to_json(workbook.Sheets[sheet]);
						console.log(persons);
						var arr=new Array();
						arr.push(persons);
						document.getElementById("content").innerHTML = formatJson(persons);
						//document.getElementById("content").innerHTML = JSON.stringify(arr);
					}
				}
			}
    }
  }

格式化json数据

  function formatJson(msg) {
    var rep = "~";
    var jsonStr = JSON.stringify(msg, null, rep)
    var str = "";
    for (var i = 0; i < jsonStr.length; i++) {
      var text = jsonStr.charAt(i)
      if (i > 1) {
        var text = jsonStr.charAt(i - 1)
        if (rep != text && rep == text2) {
          str += "<br/>"
        }
      }
      str += text;
    }
    jsonStr = "";
    for (var i = 0; i < str.length; i++) {
      var text2 = str.charAt(i);
      if (rep == text2)
        jsonStr += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
      else {
        jsonStr += text2;
      }
      if (i == str.length - 2)
        jsonStr += "<br/>"
    }
    return jsonStr;
  }

excel格式

excel表格式

获得数据

获取json数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值