06. april 2006 - 16:40Der er
5 kommentarer og 1 løsning
Indlæse data fra Excel med ASP
Hej
Jeg har følgende kode:
Set objConnExcel = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Excel Driver (*.xls)}; " strConn = DSN & "DBQ="& server.MapPath("minFil.xls") objConnExcel.Open strConn strSQL = "SELECT * from myRange1" Set rs = Conn.Execute(strSQL)
set rs = nothing set objConnExcel = nothing
hvilket fungerer fint. I det øjeblik jeg begynder at loope i rs laver min ASP en timeout. Mit loop ser således ud
while not rs.EOF response.write "<br><br>Her: "& rs("email") &" - "& rs("navn") rs.MoveNext() Wend rs.Close()
er der nogen der har en idé til hvad det kan skyldes. Jeg går ud fra min ODBC-driver er OK eftersom jeg godt kan lave forbindelsen og oprettet recordsettet.
Hvis du ikke fik en fejl kunne det tyde på også har defineret et connection object som hedder conn før i koden, eller du har linien "On Error Resume Next" i koden, den er også godt at havde bare ikke når man tester koden, så hvis du har den bør du lige udkommenter den mens du tester koden ;)
Grunden til jeg spørger om rækkefølgen af koden er fordi i sprøgsmå ser det nemlig ud som om du sætter rs = nothing før du udskriver fra recordset. Det kan jo være bevidst i spørgsmålet for at fremhæve din udskrivning... :)
Men du kan prøve at rette koden til sådan her:
Set objConnExcel = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Excel Driver (*.xls)}; " strConn = DSN & "DBQ="& server.MapPath("minFil.xls") objConnExcel.Open strConn strSQL = "SELECT * from myRange1" Set rs = objConnExcel.Execute(strSQL)
while not rs.EOF response.write "<br><br>Her: "& rs("email") &" - "& rs("navn") rs.MoveNext() Wend rs.Close() set rs = nothing objConnExcel.Close set objConnExcel = nothing
Nu virker det hvis jeg definerer en range i mit Excel-ark.
Hvis jeg skriver
Set objConnExcel = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Excel Driver (*.xls)}; " strConn = DSN & "DBQ="& server.MapPath("minFil.xls") objConnExcel.Open strConn strSQL = "SELECT * from [ark1$]" Set rs = objConnExcel.Execute(strSQL)
while not rs.EOF response.write "<br><br>Her: "& rs("email") &" - "& rs("navn") rs.MoveNext() Wend rs.Close() set rs = nothing objConnExcel.Close set objConnExcel = nothing
virker det ikke. Kunder du syntaxen for at importere fra et ark med et givent navn? eller endnu bedre fra første ark i excel-dokumentet. Mit script skal køre som en importfunktion af nogle emails og nogle navne.
Jeg vil således helst hvis jeg bare kunne sætte scriptet op til at tage første ark og herpå første og anden kolonne?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.