Hej
Hur gör man om man vill lägga över en MS SQL tabells rader i en excelfil och sedan få upp ett fönster om att ladda ner filen.
5 svar · 199 visningar · startad av Addeladde
Hej
Hur gör man om man vill lägga över en MS SQL tabells rader i en excelfil och sedan få upp ett fönster om att ladda ner filen.
<%Response.ContentType = "application/vnd.ms-excel" %>
Säger åt browsern att öppnaexcel
sen kan du bara loopa ut dina resultat ur ett recordset !
Har prövat det men det funkar inte.
<%
Response.ContentType = "application/vnd.ms-excel"
Set con = Server.CreateObject("ADODB.Connection")
con.Open Application("tdcon")
%>
<table border="0" size="400" cellpadding="3" cellspacing=0 bgcolor="#FFFFFF">
<%
sqlString = "SELECT user_namn, user_efternamn, user_id FROM users " &_
" ORDER BY user_efternamn"
SET RS = Con.Execute( sqlString )
WHILE NOT RS.EOF
%>
<tr>
<td><a class="lank" href="edit_kund.asp?pid=<%=RS( "user_id")%>"><%=server.HTMLEncode(RS( "user_namn" ))%> <%=server.HTMLEncode(RS( "user_efternamn" ))%></a></td>
</tr>
<%
RS.MoveNext
WEND
RS.Close
set RS = nothing
Con.Close
set con = nothing
%>
</table>
Det här skrev jag en gång i tiden och det funkar utmärkt...
<!-- #include file="./gaaah.inc" -->
<%
SQL="select fornamn,efternamn,enhetkort,tfnkontor,tfnmobil,epost,namn,telefonkund,hemtelefon,eposthem,fax from Vytelexcel "
SQL=SQL & session("StrSQLvilkor")
Dim Conn, rs,rs_rubrik
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open connString
Set rs=Conn.execute(SQL)
'********************Kollar om det är något i recordsetet*****************
dim antal
antal=0
do while not rs.eof
antal=antal+1
rs.movenext
loop%>
<%if antal>0 then
'**********************Säger åt browsern att öppnaexcel******************
Response.ContentType = "application/vnd.ms-excel" %>
<%rs.movefirst%>
<html>
<head><link rel="stylesheet" href="Tele.css" type="text/css"></head>
<body bgcolor="white" class="orgtext" >
<table BORDER="1" align="center">
<tr>
<td>Förnamn</td>
<td>Efternamn</td>
<td>Enhet</td>
<td>TelefonKontor</td>
<td>TelefonMobil</td>
<td>Fax</td>
<td>Epost</td>
<td>Region/Affärsområde</td>
<td>TelefonKund</td>
<td>Telefonhem</td>
<td>EpostHem</td>
</tr>
<%Do while not rs.eof%>
<tr>
<td><%=rs("fornamn")%></td>
<td><%=rs("efternamn")%></td>
<td><%=rs("Enhetkort")%></td>
<td><%=rs("tfnkontor")%></td>
<td><%=rs("tfnmobil")%></td>
<td><%=rs("fax")%></td>
<td><%=rs("epost")%></td>
<td><%=rs("namn")%></td>
<td><%=rs("telefonkund")%></td>
<td><%=rs("hemtelefon")%></td>
<td><%=rs("eposthem")%></td>
</tr>
<%rs.movenext
loop%>
</table>
</body>
</html>
<%
rs.close
set rs=nothing
else%>
<center><h4>Din filtrering gav inga träffar och går<br>därför inte att öppna eller spara som excelfil</h4></center>
<%end if%>
Gjorde lite förändringar i koden men det fungerar fortfarande inte. Det radas bara upp i en tabell på en helt vanlig html sida. Excel ska väl öppnas eller hur går det till
<%
Set con = Server.CreateObject("ADODB.Connection")
con.Open Application("tdcon")
sqlString = "SELECT user_namn, user_efternamn, user_id FROM users " &_
" ORDER BY user_efternamn"
SET RS = Con.Execute( sqlString )
Response.ContentType = "application/vnd.ms-excel"
%>
<html>
<body>
<table BORDER="1" align="center">
<tr>
<td>Förnamnamn</td>
<td>Efternamn</td>
</tr>
<%
WHILE NOT RS.EOF
%>
<tr>
<td><%=server.HTMLEncode(RS( "user_namn" ))%></td>
<td><%=server.HTMLEncode(RS( "user_efternamn" ))%></td>
</tr>
<%
RS.MoveNext
WEND
RS.Close
set RS = nothing
Con.Close
set con = nothing
%>
</table>
</body>
</html>
Laddade upp filen på servern och då fungerade det. Men det fungerade inte lokalt på IIS 5. Måste man ha någon komponent installerad eller satt någon speciell rättighet på mappen