关注
继续使用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,欢迎指出,一起学习进步喽,哈哈~~
查看原帖
点赞 评论
相关推荐
04-23 16:15
广西大学 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的实习日记 #
4134357次浏览 33129人参与
# 你认为小厂实习有用吗? #
151556次浏览 790人参与
# 第3届现代汽车Code Faster急速编程挑战赛 #
7415次浏览 326人参与
# 为了找工作你投递了多少公司? #
119202次浏览 758人参与
# 机械人的offer怎么选 #
296233次浏览 1285人参与
# 实习生的生存小技巧 #
41663次浏览 357人参与
# 实习返校后,你的精神状态是__? #
47232次浏览 166人参与
# 你最近因为什么迷茫? #
106284次浏览 975人参与
# 我的租房踩坑经历 #
229514次浏览 1279人参与
# 通信硬件薪资爆料 #
1349207次浏览 7307人参与
# 牛友的春节生活 #
134002次浏览 838人参与
# 如果能重来,就业or读研你选哪个? #
331864次浏览 2843人参与
# 工作不开心辞职是唯一出路吗 #
20653次浏览 63人参与
# 牛客AI体验站 #
32931次浏览 447人参与
# 为什么国企只招应届生 #
271718次浏览 1346人参与
# 顺丰求职进展汇总 #
91525次浏览 372人参与
# 你觉得什么岗位会被AI替代 #
68597次浏览 401人参与
# 机械人求职现状 #
45505次浏览 335人参与
# 求职遇到的搞笑事件 #
208912次浏览 1078人参与
# 你觉得机械有必要实习吗 #
92104次浏览 543人参与
# 体制内上岸心路历程 #
42142次浏览 243人参与

爱玛科技公司福利 17人发布