Avatar billede sbarnney Nybegynder
16. oktober 2001 - 10:33 Der er 3 kommentarer og
2 løsninger

Fra Excel til ASP ?

Hvorledes får jeg et excel regneark (Office 2000 xls) vist dynamisk i ASP. Hvis nok noget med excel.Application, og connecting som i en access database.

Med venlig hilsen
Stig
Avatar billede 2-maz Nybegynder
16. oktober 2001 - 10:38 #1
Avatar billede eagleeye Praktikant
16. oktober 2001 - 10:41 #2
Se evt. her:
http://support.microsoft.com/support/kb/articles/Q195/9/51.asp

Her er et andet eks:

You can use either the \"Microsoft Excel ODBC Driver\" or the \"OLE DB Provider for Jet\" to read and update an Excel spreadsheet.
Using the Microsoft Excel ODBC Driver:

Dim oConn As ADODB.Connection
Dim oRs As ADODB.Recordset

\' Create and open a new ADO Connection
Set oConn = New ADODB.Connection
oConn.Open \"Driver={Microsoft Excel Driver (*.xls)};\" & _
\"FIL=excel 8.0;\" & _
\"DefaultDir=C:\\Work;\" & _
\"MaxBufferSize=2048;\" & _
\"PageTimeout=5;\" & _
\"DBQ=C:\\Work\\ADOTest.xls;\"

\' Create the Recordset
Set oRs = New ADODB.Recordset

\' Open the Recordset using a Named Ranged
oRs.Open \"Select * from myRange1\", oConn, _
adOpenStatic, adLockBatchOptimistic, adCmdText

\' Open the Recordset using the Sheet Name
\' oRs.Open \"[Sheet1$]\", oConn, _
adOpenStatic, adLockBatchOptimistic, adCmdTable

\' Open the Recordset using the Sheet Name with row and column area
\' oRs.Open \"Select * from `Sheet1$A2:C4`\", oConn, _
adOpenStatic, adLockBatchOptimistic, adCmdText
Using OLE DB Provider for Jet:
Dim oConn As ADODB.Connection
Dim oCmd As ADODB.Command
Dim oRS As ADODB.Recordset

\' Open a connection to the Excel spreadsheet
Set oConn = New ADODB.Connection
oConn.Open \"Provider=Microsoft.Jet.OLEDB.4.0;\" & _
\"Data Source=Expenses.xls;\" & _
\"Extended Properties=\"\"Excel 8.0;HDR=Yes;\"\";\"

\' Create a command object and set its ActiveConnection
Set oCmd = New ADODB.Command
oCmd.ActiveConnection = oConn

\' This SQL statement selects a cell range in the \"Expenses\" worksheet.
\' oCmd.CommandText = \"SELECT * from `Expenses$A2:C4`\"

\' This SQL statement selects a named cell range defined in the workbook.
oCmd.CommandText = \"SELECT * from `Range1`\"

\' Open a recordset containing the worksheet data.
Set oRS = New ADODB.Recordset
oRS.Open oCmd, , adOpenKeyset, adLockOptimistic

Debug.Print oRS.RecordCount

\' Update last row
oRS.MoveLast
oRS(0).Value = -1
oRS.Update

\' Add a new row
oRS.AddNew
oRS(0).Value = 7
oRS(1).Value = 8
oRS(2).Value = 9
oRS.Update
Debug.Print oRS.RecordCount

\' Clean Up
Set oCmd = Nothing
Set oRS = Nothing
oConn.Close
Set oConn = Nothing

Jeg har fundt det her: http://www.able-consulting.com/ADO_Faq.htm#Q15 
Avatar billede sbarnney Nybegynder
16. oktober 2001 - 12:38 #3
Jeg kan ikke finde hoved og hale i det I har sendt. Er det muligt I kan lave et lille eks. ??

Stig
Avatar billede eagleeye Praktikant
16. oktober 2001 - 12:50 #4
OK prøver lige. Her er et andet eks som udskriver fra en excel fil:

I din excel fil skal øverste række indeholde navnet på feltet.

        A                        B
1    Fornavn            Efternavn
2    Anders              Hansen
3    Erik                  Jørgensen

Du skal markere det område som skal kunne læses fra ASP. Det markede område skal så tildeles et navn.
Marker områder A1:B3, gå op i menuen Indsæt -> Navn .. -> Definer… 
Definer et navn eks.vis myRange.

Generelt undgå æøå i feltnavne og det Defineret navn.
-----

Set myConn = Server.CreateObject(\"ADODB.Connection\")
Set rs = Server.CreateObject(\"ADODB.RecordSet\")

\'Connect til Excel via ODBC driver. Angiv fil navnet, her hedder filen fil.xls
\'DriverID=790 betyder Excel97
myConn.Open \"Driver={Microsoft Excel Driver (*.xls)};READONLY=FALSE;DBQ=\"&Server.MapPath(\"fil.xls\")&\";DriverID=790\"

\'Du kan skrive * for at vælge alle felter, eller feltnavne for at vælge nogle udvalgte (Fornavn, Efternavn)
strSQL = \"SELECT * FROM myRange\"

\'Hent data fra excel.
rs.Open strSQL,myConn

\'Flyt til første record
rs.movefirst
\'Udskriv alle record. EOF End of File, BOF Begining of File.
\'Udskriv kun hvis der er noget i excel filen eller indtil alle er udskrevet
while not(rs.EOF OR rs.BOF)
  \'dskriv navn
  Response.Write \"<br>Navn fra Excel filen : \" & rs(\"Fornavn\") & \" \" & rs(\"Efternavn\")
  \'Flyt til næste record
  rs.MoveNext
Wend

rs.Close
myConn.Close
set rs=nothing
set myConn=nothing 
Avatar billede sbarnney Nybegynder
16. oktober 2001 - 12:56 #5
Mange tak for hjælpen.

Stig
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester