首页给个有中文说明的例子,下面的例子很多大家可以多测试。
<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文件
3f1c4e4b6b16bbbd69b2ee476dc4f83a
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;i8a850a13a7d4f6304fd432c6bbfe3440
100db36a723c770d327fc0aef2ce13b1
385593bf7209582d73c2d3d650334bb8
a7e1e84ae9ae90c7575fa0f1aa364ee80c6dc11e160d3b678d68754cc175188a
17753354e4c2f2d0ae75f3fe89c62dc240587128eee8df8f03d0b607fe983014
73a6ac4ed44ffec12cee46588e518a5e
三、
我在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 b251e1704a85ad66178e0d84f5ea89ce
6a74014ee44f5deb5894267f99b68016
ef1cac8df639bc9110cb13b8b5ab3dd7
08eb756f81b28a01d33212cce3fbe742 new document 0e94189e2178ffcfb346fb78b3f60691
78ad79ac276283930dbc623975e8fefd
e388781bef789b60660cfbf5aae009ec);
for (i = 1; i 3f63cf61a49ed7ba7167d1a699beeee5);
for (j = 1; j c059d93c87ab4e4fc2d90e46c83c5fd7a4b561c25d9afb9ac8dc4d70affff419 : b6c5a531a458a2e790c1fd6421739d1c);
document.write(value);
document.write(i == 1 ? 0d36329ec37a2cc24d42c7229b69747a01c3ce868d2b3d9bce8da5c1b7e41e5b : b90dd5946f0946207856a8a37f441edf);
}
document.write(fd273fcf5bcad3dfdad3c41bd81ad3e5);
}
document.write(f16b1740fad44fb09bfe928bcc527e08);
osheet = null;
}
//-->
db271416853c42fd247a57c1a2c29eb6
34934661d7147ca926b095899343bad0
8fe789005baeba2b19438194d25444e6
f2475bc0d02a524246eacdb398ec424e
6eac519e8537e4205ddd37e30a7b548a
用js讀取excel的例子
4c55a87bbfcf0ccc58b6b746d044ff4b版本使用單位類綱目節類說明綱說明目說明檔名保存年限共同分類號 then
response.write eed1be1ec933ff042ba67abb41b92abcalert('excel文件字段順序錯誤或字段數不對!!')db271416853c42fd247a57c1a2c29eb6
exit function
end if
''讀取excel中的資料
do while not rs.eof
''將讀取的資料insert到oracle數據庫
for i=0 to rs.fields.count-1
edition=rs(0)
file_code=rs(2)+rs(3)+rs(4)+rs(5)
file_name=rs(9)
kind1_desc=rs(6)
kind2_desc=rs(7)
kind3_desc=rs(8)
kind4_desc=rs(9)
save_year=rs(10)
file_unit=rs(1)
com_file_code=rs(11)
''==============================================
checed_sql=select nvl(file_case,'') file_case from odm67 where edition='&trim(edition)&' and file_code='&trim(file_code)&'
if mobjdb.opensql(checed_sql) then
if mobjdb.isempty then
file_case=0001
case_desc=總案
ins_sql=
ins_sql=ins_sql & insert into odm67( & vbcrlf
ins_sql=ins_sql & edition,file_code,file_case, & vbcrlf
ins_sql=ins_sql & case_desc,crt_user,crt_date, & vbcrlf
ins_sql=ins_sql & crt_time,mdf_user,mdf_date,mdf_time) & vbcrlf
ins_sql=ins_sql & values( & vbcrlf
ins_sql=ins_sql & '&trim(edition)&','&trim(file_code)&', & vbcrlf
ins_sql=ins_sql & '&trim(file_case)&','&trim(case_desc)&', & vbcrlf
ins_sql=ins_sql & '&trim(session(user_id))&','&trim(today)&', & vbcrlf
ins_sql=ins_sql & '&trim(nowtime)&','&trim(session(user_id))&', & vbcrlf
ins_sql=ins_sql & '&trim(today)&','&trim(nowtime)&')
call mobjdb.execsql(ins_sql)
end if
end if
''==============================================
ins_sql=
ins_sql=ins_sql & insert into odm61( & vbcrlf
ins_sql=ins_sql & edition,file_code,file_name,kind1_desc, & vbcrlf
ins_sql=ins_sql & kind2_desc,kind3_desc,kind4_desc,save_year, & vbcrlf
ins_sql=ins_sql & file_unit,com_file_code,crt_user,crt_date, & vbcrlf
ins_sql=ins_sql & crt_time,mdf_user,mdf_date,mdf_time) & vbcrlf
ins_sql=ins_sql & values( & vbcrlf
ins_sql=ins_sql & '&trim(edition)&','&trim(file_code)&', & vbcrlf
ins_sql=ins_sql & '&trim(file_name)&','&trim(kind1_desc)&', & vbcrlf
ins_sql=ins_sql & '&trim(kind2_desc)&','&trim(kind3_desc)&', & vbcrlf
ins_sql=ins_sql & '&trim(kind4_desc)&','&trim(save_year)&', & vbcrlf
ins_sql=ins_sql & '&trim(file_unit)&','&trim(com_file_code)&', & vbcrlf
ins_sql=ins_sql & '&trim(session(user_id))&','&trim(today)&', & vbcrlf
ins_sql=ins_sql & '&trim(nowtime)&','&trim(session(user_id))&', & vbcrlf
ins_sql=ins_sql & '&trim(today)&','&trim(nowtime)&')
''response.write ins_sql& 82c2f54f4cf245029ffb326befd49b3f
if mobjdb.execsql(ins_sql) then
incount=incount+1
else
nocount=nocount+1
file=file&today& &nowtime& &edition& &file_code & vbcrlf
end if
exit for
next
rs.movenext
loop
rs.close
set rs=nothing
conn.close
set strconn=nothing
if filea8093152e673feb7aba1828c43532094 then
call createfolder()
call setfile(file)
strpath=server.mappath(excel_data.xls)
call deletefolder(strpath)
file=
end if
end function
'*********************************************************
' 目的: 新建一個指定的文件,如果存在就不新建,並向文件追加紀錄
' 傳入: file:要追加的數據
' 返回:
'*********************************************************
function setfile(file)
file_path=c:\log\od60err.log
set fstemp=server.createobject(scripting.filesystemobject)
if (fstemp.fileexists(file_path)) then
else
set filetemp=fstemp.createtextfile(file_path,true)
filetemp.writeline 紀錄匯入失敗資料
filetemp.close
end if
''追加失敗資料信息opentextfile
set filetemp=fstemp.opentextfile(file_path,8,true)
filetemp.writeline file
filetemp.close
set filetemp=nothing
set fstemp=nothing
end function
'*********************************************************
' 目的: 新建一個指定的文件夾,如果存在就不新建
' 傳入:
' 返回:
'*********************************************************
function createfolder()
dim fso, f
folder=c:\log
set fso = createobject(scripting.filesystemobject)
if fso.folderexists(folder) then
else
set f = fso.createfolder(folder)
createfolderdemo = f.path
end if
end function
'*********************************************************
' 目的:刪除上傳的文件,
' 傳入:傳入上傳文件的虛擬路徑
' 返回:
'*********************************************************
function deletefolder(filepath)
dim fso, f
folder=excel_data.xls
set fso = createobject(scripting.filesystemobject)
''response.write fso.fileexists(filepath)
if fso.fileexists(filepath) then
fso.deletefile filepath
end if
end function
%>
复制代码 代码如下:
3f1c4e4b6b16bbbd69b2ee476dc4f83a
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;i12c35a5d4d9d9ebb2a1a2728a430b9c8
100db36a723c770d327fc0aef2ce13b1
385593bf7209582d73c2d3d650334bb8a7e1e84ae9ae90c7575fa0f1aa364ee8
0c6dc11e160d3b678d68754cc175188a
17753354e4c2f2d0ae75f3fe89c62dc240587128eee8df8f03d0b607fe983014
73a6ac4ed44ffec12cee46588e518a5e
