webForumDet fria alternativet

Ladda ner excel ifrån access

ASP

6 svar · 311 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Frågan#1

Med AddHeader skall det väl gå att ladda ner hela databasen och samtidigt konvertera denna till excel?! Går det också att välja ut olika kolumner ur tabellen?

MVH Jesper T

Medlem sedan nov. 20014 054 inlägg
#2

Här kommer några länkar till sidor som skriver om AddHeader

1. Sloppycode

2. w3 schools

m.m ...

Kanske hittar nåt vettigt på någon av dessa sidor.

Förstog som inte riktigt frågan!

Medlem sedan nov. 20017 144 inlägg
#3

Jo, det jag vill göra är att loopa ut mina kolumner i en databas (access) och göra dessa till en nerladdningsbar fil med addHeader typ:

response.AddHeader "content-disposition", "attachment; filename=namnet.xls"

detta skall väl gå?!
Och i sådana fall hur?
Jag hittade inget bra på dina länkar Fredde mannen, tyvärr!

MVH Jesper T

Medlem sedan nov. 20017 144 inlägg
#4

Det ser ut så här nu, men sidan listas bara som vanligt med "vanlig" html och öppnar inte ett exceldokument.

<!--#include file="con.asp"-->
<%
sql = "SELECT * FROM users ORDER BY username"
Set rsUsers = Server.CreateObject("ADODB.Recordset")
rsUsers.Open sql, con, 3, 3
%>
<head>
[b]<%
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "attachment; filename=blaaa.xls" 
%>[/b]
</head>
<body>
<%
Do while not rsUsers.EOF
%>
<table>
  <tr> 
    <td> 
     <%=rsUsers("username")%>
    </td>
    <td> 
    <%=rsUsers("phone")%>
    </td>
    <td> 
     <%=rsUsers("firstname")%>
    </td>
    <td> 
      <%=rsUsers("surname")%>
      </td>
  </tr>
</table>
<%
rsUsers.Movenext
loop%>
</body>
</html>

<%
rsUsers.close
set rsUsers = nothing
con.close
set con = nothing
%>

Har jag placerat det fetmarkerade fel eller ngt annat?

MVH Jesper T

Medlem sedan mars 20015 287 inlägg
Medlem sedan nov. 20017 144 inlägg
#6

Ja, nu har jag provat det i din länk solbulle, med det blir bara "vanliga" tabeller ingen .xls fil och inget nerladdningsbart *snyft*. Jag har även provat med: Response.AddHeader "content-disposition", "attachment; filename=blaaa.xls"
Men nej då det vill bara inte.

??????????????????????????????????????????????????????

MVH Jesper

Medlem sedan juni 20003 076 inlägg
#7

vet inte om jag fattat helt korrekt men här är lite kod som jag använt till liknande projekt (ommodifierad och lite rörig men, men).
du kan nog vända på koden så det passar dig, jag använde den till att uppdatera databasen från ett exceldokument.
ev. så får du nog lägga dessa på olika sidor, köra inserten först och sedan skickas till nerladdningen, kanske kan vara nån hjälp. :)

ladda ner filer..........................................................................

Response.Buffer = True
Dim strFilePath, strFileName

Const adTypeBinary = 1

strFilePath = Server.MapPath("/Files/" & Request.QueryString("FileName")) 
strFileName = Request.QueryString("FileName")
Response.Clear

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath

strFileType = right(strFileName, len(strFileName)-instrRev(strFileName,"."))
Select Case strFileType
	Case "xls"
	ContentType = "application/vnd.ms-excel"
	Case Else
	ContentType = "application/octet-stream"
End Select
	
Response.AddHeader "Content-Disposition", "attachment; filename=000" & strFileName
Response.Charset = "UTF-8"
Response.ContentType = ContentType
Response.BinaryWrite objStream.Read
Response.Flush

objStream.Close
Set objStream = Nothing

uppdatera databas från exel....................................................

response.buffer = true

Set fs = Server.CreateObject("Scripting.FileSystemObject")
If fs.FileExists(Server.MapPath("/db/fil.xls")) Then

strconn = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=xxx;Data Source=" & Server.MapPath("/db/db.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strconn

Set cnnExcel = Server.CreateObject("ADODB.Connection")
cnnExcel.Open "DBQ=" & Server.MapPath("/db/fil.xls") & ";" & _
"DRIVER={Microsoft Excel Driver (*.xls)};"

strsql = "SELECT * FROM [Tabellnamn$] "
Set rstExcel = cnnExcel.Execute(strsql)
mygetrows = rstExcel.GetRows()
rstExcel.Close
Set rstExcel = Nothing

cnnExcel.Close
Set cnnExcel = Nothing

for rows = 0 to Ubound(mygetrows,2)
artikelnr = mygetrows(0,rows)
pris = mygetrows(3,rows)

strsql = "Update produkter set pris = " & pris & " WHERE produktnr = '" & artikelnr & "' ;"
conn.Execute strsql,,128

next
conn.Close()
Set conn = Nothing

else
response.write "excelfilen finns ej eller har fel filnamn."
end if
262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)