Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Estrazione dati da cella di excel

    Sto cercando di estrarre alcuni dati da un foglio excel.
    In particolare vorrei cercare il dato presente in una cella cercando tale dato però per nome di cella e non per la coordinata (es. F5).
    Mi spiego meglio:
    in excel, oltre alla normale notifica per coordinata per identificare la tabella è possibile nominare una cella anche con un nome personalizzato, metodologia usata per poter identificare con meno fatica determinati campi che vanno a far parte di formule.
    Fino a questo momento ho fatto quanto segue:
    codice:
    Dim oConn
    Set oConn = Server.CreateObject("ADODB.Connection")
    oConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & server.MapPath("test.xls") & ";" & _
        "Extended Properties=""Excel 8.0;""")
    dim objRS
    Set objRS = Server.CreateObject("ADODB.Recordset")
    objRS.Open "Select * from [Foglio1$]", oConn, adOpenStatic
    objRS.Close
    oConn.Close
    A questo punto mi manca il passo finale che potrebbe essere qualcosa del tipo:

    codice:
    response.write objRS("NomeCella")
    Qualcuno sa aiutarmi?

    Non piangere per ciò che hai sbagliato ma per quello che non hai fatto per paura di sbagliare.

  2. #2
    non te lo stampa così ? com'è te l'ha chiamati i campi ?
    prova a fare un ciclo dei record con i nome dei campi (objRs.fields.item(i).name). Prova a vedere anche questo esempio se ti può tornare utile...

    Ciau!
    - Atari

  3. #3
    Ciao Atari!

    Grazie per la risposta.

    Ho provato a fare così:
    codice:
    Set cn = Server.CreateObject("ADODB.Connection")
    cn.Open "driver={Microsoft Excel Driver (*.xls)};DBQ=" & server.MapPath("test2.xls")
    Set rs = Server.CreateObject("ADODB.Recordset")
    sql="select * from [Foglio1$]"
    rs.Open sql, cn, adOpenStatic
    For counter = 0 To rs.fields.count - 1
      response.write "1." & rs.fields.item(counter).name & "
    "
      response.write "Valore: " & ":" & rs.fields.item(counter).value & "
    "
    next 
    do while not rs.eof
      for counter = 0 to rs.fields.count - 1
        response.write "Nome Cella: " & rs.fields.item(counter).name & "
    "
        response.write "Valore: " & ":" & rs.fields.item(counter).value & "
    "
      next 
      rs.movenext
    loop
    rs.close
    Set rs = nothing
    cn.close
    Set cn = nothing
    Per internderci. Quando clicchi su una cella in un foglio Excel (parlo di Excel 2003) in alto a sinistra c'è il nome della cella che è appunto ad esempio A1,A2....
    Questo nome della cella lo puoi personalizzare scrivendo direttamente dentro a tale spazio. Però quando tu chiedi, come ho fatto sopra, l'elenco dei nomi e dei contenuti delle celle mi viene ancora proposto come nome la coordinata della cella e non il nome personalizzato che ho inserito nell'excel.

    Inoltre mi sono scontrato anche con un altro fatto. Da certe celle non devo estrarre il valore risultante ma la formula che vi è inserita dentro.

    Temo di chiedere un po' troppo. Tu che dici?

    Non piangere per ciò che hai sbagliato ma per quello che non hai fatto per paura di sbagliare.

  4. #4
    Però, forse ho trovato una cosa molto interessante nell'esportazione del foglio Excel in formato XML.
    In tale formato riesco ad identificare facilmente sia il nome della cella personalizzata sia le formule ed estrarre il tutto che alla fine è il mio obiettivo.
    Forse questa è la strada da percorrere.

    Non piangere per ciò che hai sbagliato ma per quello che non hai fatto per paura di sbagliare.

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.