Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Query su foglio Excel

  1. #1

    Query su foglio Excel

    Salve a tutti.
    Vorrei sapere una cosa:
    è possibile fare una query su un Foglio Excel (sul server)??? Il foglio contiene dei record formati da tot campi…una cosa abbastanza semplice comunque. Se si mi sapreste indicare come? Come viene effettuata la connessione?
    In sostanza dovrei prendere i record sul File "Pippo.xls" e da asp "smanettarci sopra"...
    Grazie mille.

  2. #2
    Dimenticavo di dare ulteriori info:
    Il file Excel è un semplice foglio che ha come prima riga l'intestazione dei campi e le seguenti righe sono i dati veri e propri. Non posso chiedere a l'utente di apportare modifiche al suo file (quindi avrei bisogno di estrarre da un semplcie foglio excel fatto come sopra). Inoltre vado solamente a leggere i dati presenti nel foglio e non ho necessità di modificare e/o cancellare. Praticamente dovrei fare una "SELECT * FROM MioFile.xls". E' possibile fare una cosa del genere?
    Spero di essere stato sufficientemente chiaro nell'esposizione del quesito.
    Grazie.

  3. #3
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao webhunter,

    puoi creare una connessione al file xls come se fosse un mdb
    il nome della tabella è il nome del foglio tra parentesi quadre e con il dollaro... te faccio un esempio
    codice:
    Set connXls = Server.CreateObject("ADODB.Connection") 
    set rs = Server.CreateObject("ADODB.Recordset") 
    connXls.Open = "driver={Microsoft Excel Driver (*.xls)};DBQ=" & Server.MapPath("tuoexcel.xls") 
    rs.Open "SELECT * FROM [Foglio1$]", connXls, 3, 2

  4. #4
    Allora, innanzitutto grazie per l'aiuto.
    ho provato lo script da te postato.

    -----------
    Set connXls = Server.CreateObject("ADODB.Connection")
    set rs = Server.CreateObject("ADODB.Recordset")
    connXls.Open = "driver={Microsoft Excel Driver (*.xls)};DBQ=" & Server.MapPath("pippo.xls")
    rs.Open "SELECT * FROM [Foglio1$]", connXls, 3, 2
    ---------------
    Ora, non mi è chiaro cosa devo mettere al posto di [Foglio1$]...devo mettere "pippo.xls$"? Oppure cosa?
    Premetto che io conosco a priori solamente il nome del file e la sua struttura (N° di campi ecc..)
    Ti ringrazio.

  5. #5
    Ho dimenticato di postare l'errore restituito...

    Error Type:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
    ODBC driver does not support the requested properties.
    QueryExcel.asp, line 17

    dove la linea 17 è:
    rs.Open "SELECT * FROM [Foglio1$]", connXls, 3, 2

    Suppongo dipenda proprio dal quel "Foglio1$", ma non mi è chiaro cosa metterci.

  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    devi mettere il nome del foglio excell... di default è Foglio1... se vuoi sapere il nome della tabella (foglio) da codice
    codice:
    Set connXls = Server.CreateObject("ADODB.Connection") 
    set rs = Server.CreateObject("ADODB.Recordset") 
    connXls.Open = "driver={Microsoft Excel Driver (*.xls)};DBQ=" & Server.MapPath("tuoexcel.xls") 
    Set RsT = ConnXls.OpenSchema(20)
    NomeTabella = rsT("TABLE_NAME")
    rs.Open "SELECT * FROM [" & NomeTabella & "]", connXls, 3, 2

  7. #7
    Grande funziona!!!
    Adesso ho un'ultimo quesito da fare.....
    Quando devo andare a valorizzare le variabili estraendo i valori dei campi, l'intestazione della colonna corrisponde al numero del campo oppure devo andare per posizione? (tenendo conto che so esattamente in che ordine sono le colonne)...
    detto spicciolamente...

    MiaVariabile=rs("???????")--> al posto ddei punti interrogativi che ci metto?



    Grazie mille comunque!!!

  8. #8
    Ho risolto!
    Grazie mille.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    1,171
    ho lo stesso tuo problema, ho provato a usare lo script
    Set RsT = strconn.OpenSchema(20)
    NomeTabella = rsT("TABLE_NAME")
    ma ho il foglio che si chiama marzo
    e a me mi restituisce il nome del foglio Foglio2$

    come hai irisolto?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.