Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Excel --> SQL Server

  1. #1

    Excel --> SQL Server

    Ho un file excel con alcune colonne, tra cui Nome e Cognome.

    Vorrei (con ASP o altro) esportare queste due colonne ed inserire i valori "Nome Cognome" in una tabella su SQL Server.

    Come faccio?

    Pensavo di creare un file XML e leggermelo scorrendolo e facendo gli inserimenti.
    O leggere direttamente il file Excel, scorrere le righe e fare le insert su SQL Server.
    Oppure fare una macro che in qualche modo mi inserisce i dati su SQL Server.

    Solo che nonso come fare nessuna di queste cose

    Mi date un suggerimento?

    Grazie

  2. #2
    hai controllato qui nel forum? un post molto simile è apparso negli ultimi giorni

  3. #3
    Ah pardon non ho cercato

    Comunque ho risolto.

    Ho salvato l'excel come CSV e con questo facile script ASP l'ho scorso come fosse un recordset.

    codice:
    ....
    ...
    ......
    
    strConn_FSO = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(".\") & ";Extended Properties=""text;HDR=Yes;FMT=Delimited"""
    
    set conn_FSO = Server.CreateObject("ADODB.Connection")
    conn_FSO.Open strConn_FSO
    
    set rs_FSO = Conn_FSO.Execute("SELECT * FROM dipxtecnic.csv")
    
    Do Until rs_FSO.Eof
    
    response.write("[*]" & rs_FSO("Nome") & " - " & rs_FSO("Cognome") & " - " & rs_FSO("UnitaOperativa"))
    
    rs_FSO.movenext
    loop
    
    .... etcetera
    Vanno dichiarate le variabili ma è carino notare come il Jet legga anche file e cartelle come fossero database!
    Una funzionalità molto carina ed utile che non conoscevo

    Spero che sia utile a qualcuno!

  4. #4
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Scusate se la domanda può sembrare stupida, ma non mastico molto di asp ...

    Ho provato ad utilizzare il codice indicato da pictor, e funziona alla perfezione, tranne per il fatto che non riesco ad identificare i vari campi delle colonne. Probabilmente mi manca il pezzo relativo a quanto suggerito:
    Vanno dichiarate le variabili ma ...
    Come faccio a dichiarare le variabili?

    Grazie in anticipo.
    Maurizio

    "se ami il lavoro che fai, non lavorerai mai un giorno in vita tua!"

  5. #5
    I valori dei campi nel recordset li identifichi per nome o per posizione; quindi:

    Col recordset uguale a
    Nome | Cognome | Città
    Ugo | Tracini | Parigi
    Nome è in posizione numero 0
    Cognome in posizione numero 1
    Città in numero 2

    Quindi puoi prendere i valori con:
    codice:
    Response.write Rs(1)
    che stamperà "Tracini".

    Oppure puoi fare per nome del campo:
    codice:
    Response.write Rs("Cognome")
    Comunque il codice è abbastanza esplicativo credo.


    Le variabili si dichiarano con:
    codice:
    Dim nomeVariabile
    e si inizializzano con:
    codice:
    nomeVariabile = valore
    Se si vuole associarci l'istanza di un oggetto si fa:
    codice:
    Set nomeVariabile = Server.CreateObject(nomeOggetto)
    In questo caso manca per esempio di dichiarare il recordset rs_FSO con:
    codice:
    Set rs_FSO = Server.CreateObject("ADODB.Recordset")
    Stessa cosa per la connessione al DB, degnamente configurata.

    Comunque guardati le guide asp su asp.html.it per i concetti base, altrimenti non vai molto avanti.

  6. #6
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Sì, fin qui ci arrivavo, non sono espertissimo ma qualcosa ho già fatto.
    Forse dovevo spiegarmi meglio.

    I nomi delle colonne sul file .csv sono costruite secondo la testata (prima riga) del foglio excel?
    Se sì, allora non capisco come fargliele digerire, perchè cercando di trattare il primo campo come Response.write Rs(0) o Response.write Rs("NomeCampo") mi dice che il campo non fa parte dell'oggetto (o qualcosa di simile - adesso non sono a casa e non ho sottomano il programma).

    Oppure bisogna intervenire in qualche modo sul foglio excel e dichiarare qualcosa?
    Maurizio

    "se ami il lavoro che fai, non lavorerai mai un giorno in vita tua!"

  7. #7
    Non ricordo ma mi pare che da qualche parte imposti se la prima riga deve essere utilizzata come elenco delle intestazioni dei campi.
    Cerca un pò su internet dettagli sulla sintassi con cui apro la connessione. Mi sembra che viene specificato lì.

    Se non funziona con Rs(0) comunque di solito il recordset è vuoto.
    Fatti restituire la fso_rs.recordcount e controlla che sia maggiore di 0.

  8. #8
    Utente di HTML.it L'avatar di salasir
    Registrato dal
    Apr 2004
    Messaggi
    1,887
    Ok, provo poi mi rifaccio vivo.
    Grazie
    Maurizio

    "se ami il lavoro che fai, non lavorerai mai un giorno in vita tua!"

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.