js 读取excel 文件

来源:互联网 发布:淘宝没有代付选项 编辑:程序博客网 时间:2024/04/30 05:49
<!DOCTYPE html><html lang="zh-cn"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width,height=device-height,initial-scale=1.0,maximum-scale=1.0,user-scalable=no">    <title>考勤excel读取</title>    <!-- Bootstrap -->    <!-- 新 Bootstrap 核心 CSS 文件 -->    <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">    <!-- 可选的Bootstrap主题文件(一般不用引入)     <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap-theme.min.css">    -->    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->    <!--[if lt IE 9]>      <script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>      <script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>    <![endif]-->    <style type="text/css">.red{color:red} .blue{color: blue}</style><script type="text/javascript">function ReadExcel() {var tempStr = "<table class='table table-bordered table-hover'><tr> <td>工号</td> <td>姓名</td> <td>上班时间</td> <td>下班时间</td> <td>一天工作时间/h</td> </tr>";//得到文件路径的值var filePath = document.getElementById("upfile").value;if(filePath == '') {alert('请选择excel文件');return;}//创建操作EXCEL应用程序的实例var oXL=null; try{ oXL = new ActiveXObject("Excel.Application"); }catch(e){ alert("请您打开ActiveX控件,具体操作:单击IE中的“工具”里“Internet选项”,单击“安全”中的“自定义级别”中“ActiveX控件和插件”中,请选择第三项为启用即可。详细错误:"+e.message); return ; } if (oXL == null){ alert("创建Excel文件失败,可能是您的计算机上没有正确安装Microsoft Office Excel软件或浏览器的安全级别设置过高!"); return; }try{//打开指定路径的excel文件oWB = oXL.Workbooks.Open(filePath); }catch (e){alert("加载的Excel文件路径有错误!详细:"+e.message); return; }try{//操作第一个sheet(从一开始,而非零)oWB.worksheets(1).select();var oSheet = oWB.ActiveSheet;//使用的行数var rows =  oSheet.usedrange.rows.count; //if(!oSheet.Cells(51,1).value) alert('ssss');//for(j in oSheet) document.write(i,"====>",oSheet[j],"<br>");try {for (var i = 2; i <= rows; i++) {if (!oSheet.Cells(i, 1).value) continue;if ((i > 2) && ((oSheet.Cells(i, 3).value+"").split(' ')[0] == (oSheet.Cells(i-1, 3).value+"").split(' ')[0])) continue;var minTime = '';var maxTime = '';//找出最大最小值for (var j = i+1; j <= rows; j++) {if (!oSheet.Cells(j, 1).value) continue;// alert(oSheet.Cells(i, 3).value.toString());// alert(oSheet.Cells(i, 3).value);return;if ((oSheet.Cells(i, 3).value+"").split(' ')[0] == (oSheet.Cells(j, 3).value+"").split(' ')[0]){if(dateStr(oSheet.Cells(j, 3).value).getTime() >  dateStr(oSheet.Cells(i, 3).value).getTime()){minTime = oSheet.Cells(i, 3).value;maxTime = oSheet.Cells(j, 3).value;}else{minTime = oSheet.Cells(j, 3).value;maxTime = oSheet.Cells(i, 3).value;}}else continue;}var hour = Math.floor((dateStr(maxTime).getTime()-dateStr(minTime).getTime())/1000/3600);if (isNaN(hour)) {continue;}var timeStr = hour-1+'小时'+ Math.floor(((dateStr(maxTime).getTime()-dateStr(minTime).getTime())/1000/3600-hour)*60)+'分';if (hour < 9) {timeStr+=' <span class="red">不足八小时</span>'};tempStr += ("<tr> <td>" + oSheet.Cells(i, 1).value + "</td> <td>" + oSheet.Cells(i, 2).value + "</td> <td>" + minTime + "</td> <td>" + maxTime + "</td> <td>" + timeStr + "</td></tr>");}} catch(e) {alert(e.message);}document.getElementById("txtArea").innerHTML = tempStr;} catch (e){alert(e.message);}oWB.Close();//不close工作簿的话,后果还是挺严重的。 //退出操作excel的实例对象oXL.Application.Quit();oWB = null; oXL = null; //手动调用垃圾收集器CollectGarbage();}dateStr = function(s){return new Date(s.replace(/-/g, "/"))}</script></head><body><div class="alert alert-danger" role="alert"><span class="red">文件大小不能超过<span class="blue">1M</span></span><br><span class="red">需要使用<span class="blue">IE</span>打开 </span><br><span class="red">需要需要安装<span class="blue">excel</span>软件 </span><br><span class="red">请您<span class="blue">打开ActiveX控件</span>,具体操作:单击IE中的“工具”里“Internet选项”,单击“安全”中的“自定义级别”中“ActiveX控件和插件”中,请选择第三项为启用即可</span><br><span class="red">如果创建Excel文件失败,可能是您的计算机上没有正确安装<span class="blue">Microsoft Office Excel软件</span>或浏览器的安全级别设置过高!</span></div><div style="padding:10px;"><input type="file" id="upfile"  /><br><input type="button" onclick="ReadExcel();" class="btn btn-info" value="读取"><br><br></div><div id="txtArea" style="width:100%;height:auto;border: 1px solid red"></div></body></html>

0 0