asp读取excel问题
在读取EXCEL表格文件时,若这个文件在此次开机后手动打开过.则asp则不能读取.会被报错.但是当重新启动电脑后,不动EXCEL文件.则ASP就可以正常读取.我想问一下这是什么原因.怎么样可以解决?请高手指教!
这个问题比较奇怪
我的就可以打开
给你源代码,看看是不是一样的
<% '初始的进度条
response.write "<table cellpadding='0' cellspacing='0' border='0'>"
response.write "<tr>"
response.write "<td>"
response.write "<span id=txt1 name=txt1 style='font-size:9pt'>等待开始......</span>" '这部分输出当前程序的运行状态
response.write "</td>"
response.write "</tr>"
response.write "<tr>"
response.write "<td>"
response.write "<table width=400 border='0' cellspacing='1' cellpadding='1'>"
response.write "<tr>"
response.write "<td bgcolor=ffffff height=9>"
response.write "<img border="0" src='./images/jdt.jpg' width=0 height=16 id=img2 name=img2>" '这部分输出当前程序的运行进度
response.write "</td>"
response.write "</tr>"
response.write "</table>"
response.write "<tr>"
response.write "<td>"
response.write" <span id=txt2 name=txt2 style='font-size:9pt'>0</span><span style='font-size:9pt'> % </span>" ' '这部分输出当前程序的运行百分比
response.write "</td>"
response.write "</tr>"
response.write "</table>"
Response.Write "<script>txt1.innerHTML='正在读取您上传的开户申请表的内容,请稍等......'</script>"&VbCrLf '输出程序的动作
Response.Flush '立即将上述部分输出到屏幕,以免屏幕空白
set xlApp = CreateObject("Excel.Application") '定义EXECL对象
xlApp.DisplayAlerts = false '不显示警告
xlApp.Application.Visible=false
strsource = server.MapPath(session("zfjfilename")) 'session("zfjfilename") 已经上传的EXECl格式的文件
set xlbook = xlApp.WorkBooks.Open(strsource) '打开EXECL文件
set xlsheet = xlbook.Worksheets(1) '仅读取第一个SHEET
all_i=0
i = 4 '设定开始读取的位置
do while xlsheet.cells(i,1) <> "" '根据读取规则,确定要读取到什么位置,另外确定进度条的长度
i=i+1
all_i=all_i+1
loop
i = 4
if all_i>0 then '如果有需要读取的数据
do while xlsheet.cells(i,1) <> ""
Conn.Execute("Insert Into xls_zh(zh_sqbh,zh_zb,zh_km,zh_dwdm,zh_dwqc,zh_xh,zh_mc,zh_add_date,zh_user_id,zh_kh_bz,zh_kh_bz_name)values('"&xlsheet.Cells(i,3)&"','"&xlsheet.Cells(i,8)&"','"&xlsheet.Cells(i,6)&"','"&xlsheet.Cells(i,5)&"','"&xlsheet.Cells(i,4)&"',0,'"&xlsheet.Cells(i,9)&"','"&date&"',"&user_id&",0,'尚未开立')") '插入数据库
i = i + 1
jd=int((i-3)/all_i*400)/4
if oldjd<>jd then
Response.write "<script>img2.width=" & oldjd*4 & " </script>"& VbCrLf '输出进度条的变化
Response.Write "<script>txt2.innerHTML="&cint(oldjd)&"</script>"&VbCrLf '输出百分比
oldjd=jd
end if
Response.Write "<script>txt1.innerHTML='正在读取您上传的开户申请表的内容,请稍等......'</script>"&VbCrLf '输出程序目前的动作
Response.Flush
loop
Response.Write "<script>txt1.innerHTML='读取您上传的开户申请表的内容完毕!'</script>"&VbCrLf '运行完毕后,输出运行结果
Response.Flush
set xlsheet = nothing '关闭EXECL相关对象
set xlbook = nothing '关闭EXECL相关对象
xlApp.quit '关闭EXECL相关对象quit 必须有,否则每运行一次就能留下一个EXECL进程
else
'如果没有要读取的内容
response.write " <script language=javascript>"
response.write "alert('没有选择文件,或者上传的文件不是电子表格,请重新选择文件!')"
response.write "history.go(-1)"
response.write "</script>"
end if
%>