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

    [VBA] From Table HTML to Excel

    Ragazzi ho un problema enorme.

    Ho un programma da fare che deve prendere il contenuto di una pagina web e inserirlo in excel.

    In pratica questa pagina WEB (dinamica), contiene una tabella con i nomi dei campi e circa un 600 record. Immaginatevi ad esempio una tabella che contenga le 20 squadre di calcio:
    nome squadra, le partite vinte, partite perse ecc....


    Ora vorrei che questa tabella fosse "trasportata" in excel.

    Tra i vari tasti c'è anche un tasto chiamato "esporta" che effettivamente fa più o meno il lavoro che vorrei fare io ma trasporta la tabella in un file .CSV

    Quali sono le soluzioni che devo adottare?

    Devo salvarmi il file .CSV in locale e poi trattarlo come un file o db o è possibile saltare il passaggio del salvataggio del file (che sarebbe ipergradito) e interrogare la tabella HTML ???



    Qualsiasi soluzione preferiate gradirei metodi da studiare, libreria da aggiungere insomma...essendo la prima volta che mi occupo di queste cose mi servirebbe il minimo indispensabile per cominciare.


    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755

    Re: [VBA] From Table HTML to Excel

    innanzi tutto apprezzo questa
    Originariamente inviato da 19davifumi89
    ...
    Qualsiasi soluzione preferiate gradirei metodi da studiare, libreria da aggiungere insomma...essendo la prima volta che mi occupo di queste cose mi servirebbe il minimo indispensabile per cominciare.
    ...
    di solito i niubbi cercano di avere la pappa pronta, ma te sembri motivato

    veniamo a noi
    la pagina web com'è fatta? contiene solo ed esclusivamente la tabella?

    devi prendere tutta la tabella dal web e importarla solo in excel o serve altro, tipo prenderne solo una parte, etc?


    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  3. #3
    La pagina prima della tabella ha tutta una serie di altri link, pulsanti, scritte ecc...

    La tabella mi serve tutta ma non devo stamparla su excel nello stesso ordine.

    ad esempio se nella pag. HTML la tabella ha:

    NOME COGNOME CLASSE ETA PESO ecc

    in excel avrò

    PESO COGNOME CLASSE ETA NOME ecc

    Però devo "estrapolare" tutti i suoi record....per questo chiedevo se fosse possibile appunto interrogare la tabella come se fosse un db.

  4. #4
    Ho dimenticato di postare la parte di codice HTML che mi interessa:



    codice:
    <DIV id=up1 name=up>
    	
    <TABLE class=Table rules=cols border=1 cellpadding=2 cellspacing=0 width=100%style="border-collapse: collapse" bordercolor=black>
    			
    			<TR class=TableHeader style="background-color: white">
    			<TH style="border-bottom: solid 1px">
    			<DIV mouseover="mouseHover'over')"onmouseout="mouseHover('out')">
         <A href="....."   style="text-decoration:none">
       <SPAN class=SimpleTextSmallBold>						NOMECAMPO1</SPAN></A></DIV>
    				</TH>
    			
    				<TH style="border-bottom: solid 1px">
    					<DIV onmouseover="mouseHover('over')" onmouseout="mouseHover('out')">
    
    <A href="/....."   style="text-decoration:none"><SPAN class=SimpleTextSmallBold>
    						NOMECAMPO2▲</SPAN></A></DIV>
    				</TH>

    In pratica io ho cominciato a studiare l'elemento HTMLDocument ma ho compreso che è ben lontato quel che son riuscito ad apprendere sul sito Microsoft da quel che mi interessa.

    Ho scritto questo codice:

    URL = "http...."
    Dim stringa As String
    Dim oggetto As New MSHTML.HTMLDocument
    Dim documento As MSHTML.HTMLDocument
    Set documento = oggetto.createDocumentFromUrl(URL, vbNullString)
    Do While documento.readyState <> "complete"
    DoEvents
    Loop

    stringa = documento.documentElement.outerHTML

    So che in stringa ora ho il sorgente della pagina...ma serve a ben poco...

    Inoltre ho campito che con il GetElementById o GetElementByName riuscirei ad accede al mio oggetto HTML...ma questa tabella sembra non avere nè ID nè NOME....e non è l'unica ad esserci....cmq sia mi mancherebbe come scorrere la tabella eccc....


    Grazie

    PS: il link della pagina putroppo non è accessibile dalla WAN

  5. #5
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    non puoi intervenire sulla struttura della pagina, almeno per farti inserire l'id nella tabella? altrimenti devi estrapolare la parte di codice html che ti interessa e magari salvartela in un file locale.
    poi magari puoi usare addirittura questo
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  6. #6
    sarebbe fantastico utilizzare le OLE ma in questo caso ho 4 tabelle dentro la pagina HTML, le prime 3 non le vedi...sono giusto per "sistemare" gradicamente la pagina hanno il bordo=0.
    Non saprei come indicare quale tabella voglio, essendo che non ha l'ID nè il Nome.


    Non posso intervenire sulla pagina HTML perchè si è in Locale ma non sul mio pc.


    Salvarla in un file servirebbe a ben poco secondo me...fosse stato un CSV si ma avere un txt con tutto il codice della pagina mi farebbe scrivere talmente tanto codice con FOR e IF che sarebbe impossibile da gestire....

    cmq ho trovato la soluzione su un forum (americano credo) che funziona perfettamente.
    Praticamente ci sono un sacco di proprietà dello oggetto TABELLA che non nè avevo idea!

    Link soluzione

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.