继续使用nodejs,壮哉我大前端~哈哈 这里用到nodejs的xlsx模块,在github上很火哟~ var xlsx = require('xlsx'); var workbook = xlsx.readFile('callLog.xlsx'); // 获取 Excel 中所有表名 var sheetNames = workbook.SheetNames; // 根据表名获取对应某张表 var worksheet = workbook.Sheets[sheetNames[0]]; // 存放分解开的小时、分钟、秒 var hour = []; var minute = []; var second = []; //将excel表格中的数据转换成json数据 function toJson(workbook) { var result = {}; workbook.SheetNames.forEach(function(sheetName) { var value = xlsx.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]); if(value.length > 0){ result[sheetName] = value; } }); return result; } //对时间的处理,将时间数字从字符串中分离开,进行计算 function timeFormat(time) { if(time.indexOf('小时') == -1) { hour.push(0); } else { hour.push(parseInt(time.split('小时')[0])); time = time.split('小时')[1]; } if(time.indexOf('分') == -1) { minute.push(0); } else { minute.push(parseInt(time.split('分')[0])); time = time.split('分')[1]; } if(time.indexOf('秒') == -1) { second.push(0); } else { time = time.replace('秒', ''); second.push(time); } } // 将时长进行相加 function allTime(toArr, timeArr) { var res = 0; var carry = 0; //进位数 var residue = 0; //满60进位后,剩余的数字 if(toArr == null) { return (function() { for(var i=0 ; i<timeArr.length ; i++) { res += parseInt(timeArr[i]); } return res; })(); } else { return (function() { for(var j=0 ; j<timeArr.length ; j++) { res += parseInt(timeArr[j]); } if(res >= 60) { //这里解决进位的问题 carry = parseInt(res/60); toArr.push(carry); residue = parseInt(res%60); return residue; } else { return res; } })(); } } //对个位数字进行补‘0’操作 function shiftZero(time) { if(time/10 < 1) { time = '0' + time; } return time; } // 拿到json对象组成的数组 var jsonArr = toJson(workbook).Sheet1; // 将数组中的‘通讯时长’初始化存放数组 var timesArr = []; for(var i=0 ; i<jsonArr.length ; i++) { timesArr.push(jsonArr[i]['通信时长']); } for(var j=0 ; j<timesArr.lengt敏感词imeFormat(timesArr[j]); } var allSec = allTime(minute, second); var allMins = allTime(hour,minute); var allHour = allTime(null, hour); console.log(jsonArr); console.log('-------------通信时长----------------'); console.log(timesArr); console.log('-------------总时长----------------'); console.log(allHour + '小时' + shiftZero(allMins) + '分钟' + shiftZero(allSec) + '秒'); 这里将从移动营业厅生成的excel表格信息简化一下,只留下有用的时长信息: 代码结果: 代码目录结构: 不知道代码是否适合所有形式的数据,尽量做了些格式化处理,暂时测试数据是可以的,如果有bug,欢迎指出,一起学习进步喽,哈哈~~
点赞 评论

相关推荐

被加薪的哈里很优秀:应该继续招人,不会给你留岗位的
点赞 评论 收藏
分享
牛客网
牛客企业服务