首页给个有中文说明的例子,下面的例子很多大家可以多测试。复制代码 代码如下:<script language="javascript" type="text/javascript"><!-- function readExcel() { var excelApp; var excelWorkBook; var excelSheet; try{ excelApp = new ActiveXObject("Excel.Application"); excelWorkBook = excelApp.Workbooks.open("C:\XXX.xls"); excelSheet = oWB.ActiveSheet; //WorkSheets("sheet1") excelSheet.Cells(6,2).value;//cell的值 excelSheet.usedrange.rows.count;//使用的行数 excelWorkBook.Worksheets.count;//得到sheet的个数 excelSheet=null; excelWorkBook.close(); excelApp.Application.Quit(); excelApp=null; }catch(e){ if(excelSheet !=null || excelSheet!=undefined){ excelSheet =nul; } if(excelWorkBook != null || excelWorkBook!=undefined){ excelWorkBook.close(); } if(excelApp != null || excelApp!=undefined){ excelApp.Application.Quit(); excelApp=null; } } // --></script>复制代码 代码如下: 如果是在网页上打开EXCEL 文件,那么在关闭的时候,进程里还有EXCEL.EXE,所以必须关闭后,刷新本页面!<script> function ReadExcel() { var tempStr = ""; var filePath= document.all.upfile.value; var oXL = new ActiveXObject("Excel.application"); var oWB = oXL.Workbooks.open(filePath); oWB.worksheets(1).select(); var oSheet = oWB.ActiveSheet; try{ for(var i=2;i<46;i++) { if(oSheet.Cells(i,2).value =="null" || oSheet.Cells(i,3).value =="null" ) break; var a = oSheet.Cells(i,2).value.toString()=="undefined"?"":oSheet.Cells(i,2).value; tempStr+=(" "+oSheet.Cells(i,2).value+ " "+oSheet.Cells(i,3).value+ " "+oSheet.Cells(i,4).value+ " "+oSheet.Cells(i,5).value+ " "+oSheet.Cells(i,6).value+"n"); } }catch(e) { document.all.txtArea.value = tempStr; } document.all.txtArea.value = tempStr; oXL.Quit(); CollectGarbage(); } </script> <html> <input type="file" id="upfile" /><input type="button" onclick="ReadExcel();" value="read"> <br> <textarea id="txtArea" cols=50 rows=10></textarea> </html> 二、 js读取excel文件 复制代码 代码如下: <script> function readThis(){ var tempStr = ""; var filePath= document.all.upfile.value; var oXL = new ActiveXObject("Excel.application"); var oWB = oXL.Workbooks.open(filePath); oWB.worksheets(1).select(); var oSheet = oWB.ActiveSheet; try{ for(var i=2;i<46;i++){ if(oSheet.Cells(i,2).value =="null" || oSheet.Cells(i,3).value =="null" ) break; var a = oSheet.Cells(i,2).value.toString()=="undefined"?"":oSheet.Cells(i,2).value; tempStr+=(" "+oSheet.Cells(i,2).value+" "+oSheet.Cells(i,3).value+" "+oSheet.Cells(i,4).value+" "+oSheet.Cells(i,5).value+" "+oSheet.Cells(i,6).value+"n"); } } catch(e){ //alert(e); document.all.txtArea.value = tempStr; } document.all.txtArea.value = tempStr; oXL.Quit(); CollectGarbage(); } </script> <html> <input type="file" id="upfile" /> <input type="button" onclick="readThis();" value="读取"><br> <textarea id="txtArea" cols=50 rows=10></textarea> </html> 三、 我在vs2005平台上要实现这么一个功能,点击一个按钮一次将大量的excel文件数据导入到sqlserver2005中 我用的是ajax技术,在前台用javascript操做excel文件,循环读取所有的excel文件,每读取一行就放进一个数组里通过web服务传到后台用c#语言将一行数据插入到数据库。思路大概就是这样。 现在功能已经实现了,具体代码如下 用javascript定义一个函数,循环读取excel文件数据 复制代码 代码如下: function readExcel() { try { var ExcelNum=new Array(); //重复导入之前,删除上次导入的同期数据 WebServiceExcel.deleteOldNumber(); var oXL = new ActiveXObject( "Excel.Application "); \r_c_num[5]的值为excel文件的名字 var path=document.all.excelpath.value+ "\ "+r_c_num[5] var oWB = oXL.Workbooks.open(path); \如果excel文件有多个sheet的话从第一个sheet循环读取 for(var x=1;x <=oWB.worksheets.count;x++) { oWB.worksheets(x).select(); var oSheet =oWB.ActiveSheet; \按指定开始行和开始列读取excel文件的数据 for(var i=parseInt(r_c_num[6]);i <=parseInt(r_c_num[7]);i++) { for(var j=parseInt(r_c_num[8]);j <=parseInt(r_c_num[9]);j++) { if(typeof(oSheet.Cells(i,j).value)== "undefined ") { ExcelNum[j-parseInt(r_c_num[8])+6]= " "; } else { switch_letter(j); ExcelNum[j-parseInt(r_c_num[8])+6]=oSheet.Cells(i,j).value; } } //将读取的一行数据传到后台插入到数据库 WebServiceExcel.insert_From_Excel(ExcelNum); } } } } catch(err) { alert( "出错了, "+err.message); } } 这只是前台的关键代码。 现在的问题是,如果excel文件数据太多的话,导入过程要等好长时间,性能太差了,不知道该怎么改进???如果导几千行数据就不行了,时间让我无法忍受。请高手赐教,很着急用,谢谢了!!! 一个用JavaScript结合Excel.Application读取本地excel文件并以表格呈现的简单例子 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- var excelFileName = "E:/project/eomstools/ShowTaskCodeWorkbook/test.xls"; var oWB; function showExcel(targetDIVID){ //objID为表格ID //需要在浏览器安全级别设置中启用ActiveX // Start Excel and get Application object. var oXL=null; try{ oXL = new ActiveXObject("Excel.Application"); }catch(e){ alert(e.message); return ; } if (oXL == null){ alert("创建Excel文件失败,可能是您的计算机上没有正确安装Microsoft Office Excel软件或浏览器的安全级别设置过高!"); return; } try{ // Get a new workbook. oWB = oXL.Workbooks.Open(excelFileName); for (i = 1; i <= oWB.Sheets.Count; i++){ if (oWB.Sheets(i).name.lastIndexOf("月") != -1){ showSheet(i); } } } catch (e){ alert(e.message); } oWB.Close(); //不close工作簿的话,后果还是挺严重的。 oWB = null; oXL = null; } function showSheet(sheetNO){ var oSheet = oWB.Sheets(sheetNO); document.write("<table border=1>"); for (i = 1; i < oSheet.UsedRange.Rows.Count; i++){ document.write("<tr>"); for (j = 1; j < oSheet.UsedRange.Columns.Count; j++){ value = oSheet.Cells(i, j).Value; if (value == undefined){ value = " "; } document.write(i == 1 ? "<th nowrap=true><b>" : "<td>"); document.write(value); document.write(i == 1 ? "</b></th>" : "</td>"); } document.write("</tr>"); } document.write("</table>"); oSheet = null; } //--> </SCRIPT> </HEAD> <BODY onLoad="showExcel();"> </BODY> </HTML>
推荐阅读
javascript 面向对象编程基础 多态
Javascript已经可以模拟出面向对象的封装和继承特性,但是不幸的是Javascript对多态特性的支持非常弱!其它面向对象语言的多态一般都由方法重载和虚方法来实现多态,Javascript也通过这两种途径来实现! 重载:由于>>>详细阅读
本文标题:可以读取EXCEL文件的js代码第1/2页
地址:http://www.17bianji.com/kaifa2/JS/28237.html
1/2 1