Home >Web Front-end >JS Tutorial >js code that can read EXCEL files_javascript skills

js code that can read EXCEL files_javascript skills

PHP中文网
PHP中文网Original
2016-05-16 18:47:391412browse

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" onclick="ReadExcel();" value="read"> 
<br> 
<textarea id="txtArea" cols=50 rows=10></textarea> 
</html>

二、
js读取excel文件 

<script> <br/>function readThis(){ <br/>var tempStr = ""; <br/>var filePath= document.all.upfile.value; <br/>var oXL = new ActiveXObject("Excel.application"); <br/>var oWB = oXL.Workbooks.open(filePath); <br/>oWB.worksheets(1).select(); <br/>var oSheet = oWB.ActiveSheet; <br/>try{ <br/>for(var i=2;i<46;i++){ <br/>if(oSheet.Cells(i,2).value =="null" || oSheet.Cells(i,3).value =="null" ) <br/>break; <br/>var a = oSheet.Cells(i,2).value.toString()=="undefined"?"":oSheet.Cells(i,2).value; <br/>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"); <br/>} <br/>} <br/>catch(e){ <br/>//alert(e); <br/>document.all.txtArea.value = tempStr; <br/>} <br/>document.all.txtArea.value = tempStr; oXL.Quit(); <br/>CollectGarbage(); <br/>} <br/></script>







三、
我在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(x).select();
var oSheet =oWB.ActiveSheet;
\\按指定开始行和开始列读取excel文件的数据
for(var i=parseInt(r_c_num[6]);i {
for(var j=parseInt(r_c_num[8]);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文件并以表格呈现的简单例子 




New Document < ;/TITLE> <br><script language="JavaScript"> <br/><!-- <br/>var excelFileName = "E:/project/eomstools/ShowTaskCodeWorkbook/test.xls"; <br/>var oWB; <br/>function showExcel(targetpID){ <br/>//objID is the table ID <br/>//ActiveX needs to be enabled in the browser security level settings <br/>// Start Excel and get Application object. <br/> var oXL=null; <br/>try{ <br/>oXL = new ActiveXObject("Excel.Application"); <br/>}catch(e){ <br/>alert(e.message); <br/>return; <br/>} <br/>if (oXL == null){ <br/>alert("Creating the Excel file failed. It may be that Microsoft Office Excel software is not installed correctly on your computer or the security level of the browser is set too high!") ; <br/>return; <br/>} <br/>try{ <br/>// Get a new workbook. <br/>oWB = oXL.Workbooks.Open(excelFileName); <br/>for (i = 1; i < ;= oWB.Sheets.Count; i ){ <br/>if (oWB.Sheets(i).name.lastIndexOf("month") != -1){ <br/>showSheet(i); <br/>} <br/>} <br/>} <br/>catch (e){ <br/>alert(e.message); <br/>} <br/>oWB.Close(); //If you don’t close the workbook, the consequences will still be serious of. <br/>oWB = null; <br/>oXL = null; <br/>} <br/>function showSheet(sheetNO){ <br/>var oSheet = oWB.Sheets(sheetNO); <br/>document.write("< table border=1>"); <br/>for (i = 1; i < oSheet.UsedRange.Rows.Count; i ){ <br/>document.write("<tr>"); <br/>for (j = 1; j < oSheet.UsedRange.Columns.Count; j ){ <br/>value = oSheet.Cells(i, j).Value; <br/>if (value == undefined){ <br/>value = " "; <br/>} <br/>document.write(i == 1 ? "<th nowrap=true><b>" : "<td>"); <br/>document.write(value ); <br/>document.write(i == 1 ? "" : ""); <br/>} <br/>document.write("< /tr>"); <br/>} <br/>document.write(""); <br/>oSheet = null; <br/>} <br/>//--> <br/>< ;/SCRIPT> <br/> <br/><BODY onLoad="showExcel();"> <br/> <br/></script>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn