用js处理打卡记录excel表
首张图片是待处理的excel表,文章最后是处理结果,如果您是要这种效果,中间内容不妨看一下。
不需要数据库,不需要服务,只要一个excel一个谷歌浏览器,搞定这些。
因为js没有上传excel表的功能,我们简单处理下excel表,把内容粘贴出来,把一切作为字符串来处理。
首先,处理下excel表中的数据,每一行行首和行尾,用英文中括号‘[]’括起来,如下,很简单,加两列,用公式计算一下第一行的单元格,下拉搞定所有。
==========================================================================================================================
其次,复制前两列,粘贴到http://tool.oschina.net/codeformat/html,格式化一下字符串,此步骤可以省略,如下:
==========================================================================================================================
将字符串记为str,打卡合格次数记为times,执行orderList(str,times)函数。
==========================================================================================================================
把如下代码粘贴到浏览器的console中:
str = ' [李白 2016-01-20,5:30-20:30] [王白 2016-01-20,5:30-20:31] [金白 2016-01-20,5:30-20:32] [王白 2016-01-20,5:30-20:33] [李白 2016-01-20,5:30-20:34] [金白 2016-01-20,5:30-20:35] [金白 2016-01-20,5:30-20:36] [赵白 2016-01-20,5:30-20:37] [郝白 2016-01-20,5:30-20:38] [郝白 2016-01-20,5:30-20:39] [郝白 2016-01-20,5:30-20:40] [王白 2016-01-20,5:30-20:41] [赵白 2016-01-20,5:30-20:42] [王白 2016-01-20,5:30-20:43] [郝白 2016-01-20,5:30-20:44] [王白 2016-01-20,5:30-20:45] [王白 2016-01-20,5:30-20:46] ',
times = 4,
//Merge rows
function orderList(str,times){
namelist = [];
str.match(/\[[^\]]+\]/g).map(function(item,index,array){
return item.replace(/[^\u4e00-\u9fa5]/gi,"");
}).sort().reduce(function(prev,cur,index,array){
if(prev.indexOf(cur)<0 || index==1){
namelist.push(cur);
}
return prev+cur;
});
return namelist.map(function(item,index,array){
var order = str.match(/\[[^\]]+\]/g).join().match(new RegExp('\\['+item.toString()+'[^\\]]+\\]','g'));
var l = 0;
if(order && order!=null && order != '')
l = order.length;
if(l<times)
return '姓名:'+item + ',共计:' + l + ',明细:' + order;
else
return '姓名:'+item + ':ok!';
}).sort(function(v1,v2){
var p = /ok!/g;
if(p.test(v1) && p.test(v2))
return 0;
else if(p.test(v1) && !p.test(v2))
return 1;
else
return -1;
}).join('\n');
}(str,times)
代码的详细介绍参考另一篇文章:http://blog.csdn.net/june_ruikang/article/details/52640823,可从同类文章中查找
=======================================================================================================================
点击回车,执行后结果如下:
"姓名:李白,共计:2,明细:[李白 2016-01-20,5:30-20:30],[李白 2016-01-20,5:30-20:34]
姓名:赵白,共计:2,明细:[赵白 2016-01-20,5:30-20:37],[赵白 2016-01-20,5:30-20:42]
姓名:金白,共计:3,明细:[金白 2016-01-20,5:30-20:32],[金白 2016-01-20,5:30-20:35],[金白 2016-01-20,5:30-20:36]
姓名:郝白:ok!
姓名:王白:ok!"
用js处理打卡记录excel表相关推荐
- js解析EXCEL考勤打卡记录
公司的打卡记录是直接发我们的.要自己一条条核对,相当困惑 于是自己写了个导入EXCEL道勤记录的,友好查看打卡记录. 导入后,输入姓名,点击查询 <!doctype html> <h ...
- 如何用python处理excel简单考勤统计_excel怎么通过打卡记录简单统计考勤?
很多公司上班是需要打卡的,我们公司打卡是采用刷脸的办法,每个月需要根据打卡的记录来算工资,那么如何利用打卡记录来大致统计下每个月哪些人哪些天到了呢?如何确定是否迟到呢? 软件名称:Excel2003绿 ...
- 前端利用JS导出数据到Excel表 数字是文本类型 无法计算
问题描述:前端利用JS导出数据到Excel表 数字是文本类型 无法进行公式计算:前端利用JS导出数据到Excel表 数字是文本类型 无法计算 解决办法:参考https://bbs.csdn.net/t ...
- JS 打印 data数据_小程序导出数据到excel表
小程序导出数据到excel表,借助云开发后台实现excel数据的保存 我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里? 这个需求可以用强大的云开发轻松实现 ...
- 打卡记录根据排班表每人每日排班上下班时间自动获取结果打卡记录是属于那是区间
目前有1张打卡记录表,1张排班表,效果要打卡记录根据排班表每人每日排班上下班时间自动获取结果打卡记录是属于那是区间的!效果图 目前问题点:1.视图写法把区间时间写死,没法根据排班信息进行打卡数据分类 ...
- JS EXCEL表的操作
No.1 解析EXCEL表.根据已有的xlsx为后缀的excel表,获取表里的数据,从而判断拿出需要的数据 <!DOCTYPE html> <html lang="en ...
- 电脑表格日期怎么修改原有日期_如何在Excel表中自动生成记录数据的日期和时间...
几天前有人问我: 在Excel表格中输入信息时,如何在日期单元格中自动生成日期和时间? 输入表格时,我们经常需要输入时间,而不是填写存储时间,为了减少输入工作量,您可以将日期设置为自动生成. 例如,当 ...
- js 实现网页表格数据导出到Excel表
最近在做一个项目,涉及到导出数据到Excel表格,由于是采用的前后端分离模式开发的,之前常用的方法已经失效,在网上找了一些资料和方法 js文件下载地址 1.是采用的一个插件 xlsx.full.min ...
- node.js学习笔记(5)——excel-export模块导出excel表
一.excel-export模块 官方介绍:https://www.npmjs.com/package/excel-export 生成的表格为xlsx格式,支持多个sheet.本文只介绍一个sheet ...
最新文章
- Week1 Team Homework #2 from Z.XML-Introduction of team member with photos
- 【重复制造精讲】3、成本收集
- python数据处理不用编程_用Python玩转数据数据处理相关小例编程题
- 方法练习1_比较两个数字是否相同
- 数据库原理与应用(SQL Server)笔记 第十章 用户定义函数
- java 获取当前月份的第一天_JAVA获取本月的第一天和最后一天
- 申万一级行业日指数_基金收评 | 指数震荡走弱,军工股成两市主线!后期行情如何?...
- 逼自己玩命学了6个多月,吃透了这19个架构视频!分享给你,让你今年进个大厂!...
- 爬虫-request库-get请求
- IQ不平衡补偿 Lowdin算法
- javascript进阶课程--第三章--匿名函数和闭包
- java的几个概念AOP、IOC、DI、DIP、工厂模式、IOC容器
- 原工信部副部长杨学山:重基础,促创新,求实效,转观念
- 适合C语言学习的书籍推荐 | 初学者必备
- 字体,Web安全字体,serif和sans serif区别,免费商用中文字体等
- ADNI-Study-Data
- 使用mindspore过程中Using shared memory queue, but rowsize is larger than allocated
- 被遗忘的艺术:图的思维方式
- 手把手教你用Python打造一款批量下载视频并能可视化显示下载进度的下载器
- 大学计算机课桌面弄毛玻璃,高校换上新课桌,同学表示“世界观被颠覆”,网友:黑科技的诞生...
热门文章
- 计算CP、CR、CF1、OP、OR、OF1和mAP的top-3评价指标
- 【Hadoop HA】搭建Hadoop HA的详细教程
- 二十七、动词不定式 万事开头难
- 30天自制操作系统 导读
- 42道最新java开发常见面试题:JavaSE基础知识
- [Linux]基于SQLite数据库的停车管理系统
- 1029: 三角形判定 Python
- 精致纯CSS打造绿色漂亮导航栏
- DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras论文阅读笔记
- Can ChatGPT Understand Too?