這次做的活是ASP操作Excel,全程序是每行都標出,然後像填空一樣做的。現在被我改成了動態顯示每行的項,再逐行顯示,最後做一個匯總。
1、fso找到Excel文件
<%
Dim fso,folder,file
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(Server.MapPath("data"))
Dim name
For Each file in folder.Files
name = fso.GetBaseName(file)
%>
<li><%=name%></li>
<%
Next
%>
2、連接Excel文件,獲取第一個sheet的name
<%
//建立Connection對象
Set Conn_qc = Server.CreateObject("ADODB.Connection")
Driver = "PRovider=Microsoft.Jet.OLEDB.4.0;"
DBParm = "Extended PropertIEs=""Excel 8.0;HDR=Yes;IMEX=1"";"
//調用Open 方法打開數據庫
DBPath = "Data Source=" & Server.MapPath("data\" & table & ".xls") & ";" '注意:此處的table變量為文件名,可由上一個方法得到
Conn_qc.Open Driver & DBPath & DBParm
//獲取第一個sheet的名稱
Set rs=Conn_qc.OpenSchema(20)
TableName = rs("Table_name")
rs.Close
//查詢數據
Sql="Select * From [" & TableName & "]"
//response.write(sql)
'Set Rs=Conn.Execute(Sql)
rs.open sql, Conn_qc, 1, 1 '此處可以解決recordcount為 -1 的問題
if rs.recordcount<>0 then
%>
<table width="100%" border="0" cellpadding="0" cellspacing="0" >
<tr>
<%for i=0 to rs.fIElds.count-1%>
<td align="center" valign="middle" bgcolor="#F2F8FF" ><% =rs(i).Name %></td>
<%next%>
</tr>
<tr>
<%for i=0 to rs.fIElds.count-1%>
<td align="center" valign="middle" class="f"><%=rs(i)%></td>
<%next%>
</tr>
</table>
<%
end if
rs.close
set rs=nothing
Conn_qc.close
%>