js读取本地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" οnclick="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" οnclick="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>

http://javasam.iteye.com/blog/1921049
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值