Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567

    Leggere dati nelle celle di Excel

    Ciao a tutti ho una serie di variabili a cui ho bisogno di assegnare i valori delle celle di un foglio di excel, ho usato il seguente script:

    codice:
    <
    colonne=7 
    
    Dim DbConn, rs
    strConn="DRIVER={Microsoft Excel Driver (*.xls)};  DBQ=" & Server.MapPath ("dati.xls")
    set DbConn=server.CreateObject("adodb.connection")
    sqlString="SELECT * FROM [Foglio1$]"
    set rs=server.createobject("adodb.recordset")
    
    rs.activeconnection=strConn
    rs.open sqlString
    
    while not rs.EOF
    
    campo1=rs
    campo2=rs
    campo3=rs
    
      rs.MoveNext
    wend
    rs.close
    Ovviamente così le variabili campo1,campo2,campo3 non danno il risultato che voglio, come devo fare per attribuire a campo1 i valori della prima colonna, a campo2 quelli della seconda e a campo3 quelli della terza???

    Grazie

  2. #2
    Ciau,

    i dati li leggi come se fosse un normale database, anche se non so se abbiano un nome o meno, li puoi sempre numerare :
    codice:
    campo1 = rs.fields(0)
    campo2 = rs.fields(1)
    etc...
    Un esempio interessante a proposito è questo :
    http://www.asp101.com/samples/viewas...le=xl_data.asp

    Ciau!
    - Dean

  3. #3
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Non mu funziona, in pratica devo leggere da un foglio excel e scrivere i dati in un db mysql, ho usato il seguente codice:

    codice:
    <% 
    colonne=7 
    
    Dim DbConn, rs
    strConn="DRIVER={Microsoft Excel Driver (*.xls)};  DBQ=" & Server.MapPath ("excel.xls")
    set DbConn=server.CreateObject("adodb.connection")
    sqlString="SELECT * FROM [Foglio1$]"
    set rs=server.createobject("adodb.recordset")
    
    rs.activeconnection=strConn
    rs.open sqlString
    dati=""
    
    set conn=server.createobject("ADODB.connection")
    conn.open ("DRIVER={MySQL ODBC 3.51 Driver};SERVER=mysql.miosito.it;PORT=3306;DATABASE=db; USER=utente;PASSWORD=pw;OPTION=3;")
    
    while not rs.EOF
     
    ditta=rs.fields(0)
    indirizzo=rs.fields(1)
    cap=rs.fields(2)
    citta=rs.fields(3) 
    provincia=rs.fields(4)
    telefono=rs.fields(5)
    fax=rs.fields(6)
    
    sql1="insert into db (ditta, indirizzo, cap, citta, provincia, telefono, fax) values ('"&ditta&"','"&indirizzo&"','"&cap&"','"&citta&"','"&provincia&"','"&telefono&"','"&fax&"')"
    set rse=conn.execute (sql1)
    
      rs.MoveNext
    wend
    rs.close
    %>
    Mi inserisce i valori di una sola cella in tutti campi del db, in pratica cambiano da ogni record ma nei campi il valore è sempre lo stesso.

  4. #4
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Nessuno ha consigli da darmi???


  5. #5
    nemmeno seguendo l'esempio che ti ho postato sopra?

    Ciau!
    - Dean

  6. #6
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Nel secondo script che ho passato l'ho inserito, guarda un po' se l'ho fatto correttamente perchè nn va.

    grazie

  7. #7
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Non riesco proprio a trasferire sti dati da excela mysql

  8. #8
    mah io ti consiglierei ti lasciar perdere prima la parte su mysql, e cercare prima di leggere i dati.
    Il nome della tabella [Foglio1$] è corretto?
    Se provi ad inserire semplicemente Foglio1?

    Che errore ti da?

    E' strano perchè, seguendo quell'esempio postato in passato ero riuscito a leggere da Excel.

    Ciau!
    - Dean

  9. #9
    Utente di HTML.it L'avatar di flash20
    Registrato dal
    Dec 2003
    Messaggi
    567
    Ma non mi da errore, mi sposta i dati da excel a mysql, ma non nel modo che voglio io. Ti spiego meglio, il foglio di excel è fatto così (il trattino delimita le celle, l'ho semplificato ovviamente):

    nome - cognome - via - telefono
    nome2 - cognome2 - via2 - telefono2
    nome3 - cognome3 - via3 - telefono3
    . . . .
    . . . .


    e voglio che venga riportato allo stesso modo su my sql, ma invece viene riportato così:

    telefono - telefono - telefono - telefono
    telefono2 - telefono2 - telefono2 - telefono2
    telefono3 - telefono3 - telefono3 - telefono3
    . . . .
    . . . .

    Spero che così sia più comprensibile il problema

    Grazie


  10. #10
    Uhm strano.....

    Prova a stampare su video con un i ciclo i campi, cioè :
    codice:
    Do While Not Rs.EOF
    
    For I = 0 To Rs.Fields.Count -1
    Response.Write(I& " : " &rs.fields(I)& "
    ")
    Next
    
    rs.MoveNext
    Loop
    I dati stampati sono corretti?
    Giusto per capire se è un problema di Excel o di qualche altra cosa.

    Ciau!
    - Dean

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.