Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197

    velocizzare l'esportazione su excel

    sto facendo un'esportazione su excel usando la libreria
    "Microsoft Excel Object library 9.0"

    i dati da esportare sono molti e ci mette un sacco di tempo

    praticamente eseguo una query scorro il recordset e per ogni record vado a riempire cella per cella

    objSheet.Cells(i, "A") = RS_Appoggio("campo1")
    objSheet.Cells(i, "B") = RS_Appoggio("campo2")
    objSheet.Cells(i, "C") = RS_Appoggio("campo3")
    ......
    ...
    objSheet.Cells(i, "CR") = RS_Appoggio("campo56")

    c'e' un modo per velocizzare l'operazione? che ne so magari riempendo tutta la riga con un colpo solo piuttosto che una cella alla volta?
    si accettano dritte e consigli grazie

  2. #2
    Utente di HTML.it L'avatar di cik
    Registrato dal
    Jul 2003
    Messaggi
    449
    invece del recordset di appoggio potresti creare una tabella di appoggio e esportarla con TransferSpreadsheet (in vba per access c'è. Non so in VB)

    Non saprei dirti però se è più o meno veloce.
    S'i fosse foco, arderei 'l mondo

  3. #3
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    mmm.. non è proprio quello che cerco, cmq grazie
    altri suggerimenti?

  4. #4
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569
    ti puoi creare un file .csv con i dati che ricavi dal recordset, lo apri con Excel e salvi in formato xls..

    ovviamente, poi devi scrivere la intestazione, mettere a posto larghezze, colori, ecc.. il risparmio è che non devi continamente usare sheet.cells(..,..) il che rendo tutto un po' + veloce.
    Take it easy babe.. take it as it comes

  5. #5
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    Originariamente inviato da Gigi84
    ti puoi creare un file .csv con i dati che ricavi dal recordset, lo apri con Excel e salvi in formato xls..

    ovviamente, poi devi scrivere la intestazione, mettere a posto larghezze, colori, ecc.. il risparmio è che non devi continamente usare sheet.cells(..,..) il che rendo tutto un po' + veloce.
    si questa è una soluzione che gia adotto ed effettivemente o piu veloce, ma non è possibile formattare le celle
    esempio: devo mettere in grassetto la prima riga dove ci sono le intestazioni delle colonne, potrei colorare le righe a secondo dei dati che contengono e cosi via

    grazie a anche a te del suggerimento,
    rimango in ascolto per ulteriori suggerimenti....

  6. #6
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197

    risolto

    risolto alla grande

    sono passato da 6 min e 10 secondi a meno di 30 secondi

    per chi interessa....

    objSheet.Range(objSheet.Cells(2, "A"), objSheet.Cells
    (i, "AB")).CopyFromRecordset RS_Appoggio

    direi che il risultato è piu che soddisfacente, non posso
    formattare pero' le celle come voglio se non eseguendo
    un'atra operazione, vabbe mi accontento

  7. #7
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569
    ma certo che puoi colorarti le celle!!
    a quest'ora non ricordo la\e proprietà, ma se ti guardi la guida degli oggetti di excel, trovi sicuro una "backcolor" ecc..

    oppure,
    ti fai registrare una macro da excel, dove tu colori una cella del colore che + ti aggrada.. e vai vedere nell'editor di VBA come si fa, poi è semplice tramutare il codice in VB!!


    Take it easy babe.. take it as it comes

  8. #8
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    Originariamente inviato da Gigi84
    ma certo che puoi colorarti le celle!!
    a quest'ora non ricordo la\e proprietà, ma se ti guardi la guida degli oggetti di excel, trovi sicuro una "backcolor" ecc..

    oppure,
    ti fai registrare una macro da excel, dove tu colori una cella del colore che + ti aggrada.. e vai vedere nell'editor di VBA come si fa, poi è semplice tramutare il codice in VB!!


    certo certo, io intendevo che non potevo farlo con un'unica operazione assieme all CopyFromRecordset

  9. #9
    Utente di HTML.it L'avatar di Gigi84
    Registrato dal
    May 2001
    Messaggi
    569

    Re: risolto

    ...non posso formattare pero' le celle come voglio se non eseguendo
    un'atra operazione, vabbe mi accontento
    ehm.. non avevo letto bene..

    potresti allora crearti un foglio di excel da usare come modello, con le celle colorate, i grassetti nei posti giusti.. ecc..

    poi lo riempi, e salvi con nome!!


    Take it easy babe.. take it as it comes

  10. #10
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197
    i colori saranno in base ai dati che a priori non conosco quindi non posso adottare un modello, che pero mi puo tornare utile in altri casi
    grazie

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.