可以读取EXCEL文件的js代码第1/2页
2009-08-26 00:00
906 查看
首页给个有中文说明的例子,下面的例子很多大家可以多测试。
二、
js读取excel文件
三、
我在vs2005平台上要实现这么一个功能,点击一个按钮一次将大量的excel文件数据导入到sqlserver2005中
我用的是ajax技术,在前台用javascript操做excel文件,循环读取所有的excel文件,每读取一行就放进一个数组里通过web服务传到后台用c#语言将一行数据插入到数据库。思路大概就是这样。
现在功能已经实现了,具体代码如下
用javascript定义一个函数,循环读取excel文件数据
这只是前台的关键代码。
现在的问题是,如果excel文件数据太多的话,导入过程要等好长时间,性能太差了,不知道该怎么改进???如果导几千行数据就不行了,时间让我无法忍受。请高手赐教,很着急用,谢谢了!!!
一个用JavaScript结合Excel.Application读取本地excel文件并以表格呈现的简单例子
<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>
相关文章推荐
- 可以读取EXCEL文件的js代码第1/2页
- JS幻想 读取二进制文件第1/2页
- JS幻想 读取二进制文件第1/2页
- js代码解密代码第1/2页
- js读取Excel文件数据-IE浏览器
- java读取本地excel文件代码
- 【JAVA】apache poi excel 文件读取,各种数据类型,不规则excel格式都可以读取
- IE下JS读取xml文件示例代码
- 使用js-xlsx库,前端读取Excel报表文件
- js读取本地excel文档数据的代码
- 可以拖动的div 实现代码第1/2页
- C# 读取Excel文件代码的几种片段收集(转)
- js读取并解析excel文件,之后上传json到服务器
- python 读取excel失败 可以转换成csv文件
- php读取excel文件(OLERead.php页代码)
- C#.NET读取一个文件夹下所有excel文件的代码
- 前端读取Excel报表文件 js-xlsx
- 【转】 大数据量的excel文件读取——excel2007(含代码及示例)