Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    145

    [Delphi 7] Ricerca di una parola in un foglio Excel

    Ciao a tutti!
    C'è un modo più veloce e automatico di ricercare una parola all'interno di un foglio Excel?
    Per ora infatti il mio programma lo scorre tutto cella x cella e confronta il contenuto della cella con la parola 'ciao' nel seguente modo :

    var Sheet, Cell : variant;
    i : integer;
    s : string;
    begin
    Sheet := Excel.ActiveSheet;
    for i := 1 to 400 do
    begin
    cell := Sheet.Cells[i, 2];
    s := cell.text;
    if StrIComp(PChar(Uppercase(s)), PChar('ciao')) = 0 then
    begin
    ......
    end;
    end;
    end;


    Grazie mille!!!!!


    Ciaooooooo

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Lavorare con i componenti Server è sempre un'operazione abbastanza delicata, ad ogni modo se vuoi conoscere i metodi e le proprietà supportati dagli oggetti esposti da Excel, apri il programma stesso e visualizza l'Editor di Visual Basic dal menu [Strumenti|Macro].

    Ti apparirà l'editor contenente gli oggetti della tua cartella di lavoro di cui potrai esplorare proprietà e metodi consultando la guida di Excel per delucidazioni sul loro funzionamento.

    Quando hai individuato il metodo che ti interessa, ti basta usarlo dall'applicazione Delphi attraverso il componente che rappresenta l'oggetto in questione (WorkBook, WorkSheet, ecc.) a cui appartiene il metodo o la proprietà stessa.

    Ad esempio, per cercare un valore all'interno di un range di celle, puoi usare il componente ExcelWorkSheet
    codice:
    Cell := ExcelWorksheet1.Range[...].Find(...);
    Ho lavorato molto poco con questi componenti, e solo in casi strettamente necessari. Ad ogni modo, per scoprire come funzionano e cosa rappresentano i vari componenti e i loro metodi e proprietà, devi fare riferimento agli oggetti ominimo nella "Guida di riferimento di Excel".

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    145
    Grazie! ce l'ho fatta!
    Pero' c'è un problema : se nel mio foglio excel ci sono 2 parole simili nel seguente ordine (es: supermario mario) ed effettuo una ricerca x "mario", la find mi restituisce supermario xchè fa una LIKE....
    Penso che ci sia un opzione della find che permette di ricercare la parola esatta ma nn riesco a trovarla!

    ecco il mio codice :

    var sheet, cell, excel : variant;
    begin
    Excel := UnAssigned;
    Excel := CreateOleObject('Excel.Application');

    Excel.WorkBooks.Open('bla bla bla.xls');

    Sheet := Excel.ActiveSheet;
    Cell := Sheet.Range['B19:B360'].find('mario');

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Usa il Visualizzatore oggetti direttamente dall'editor di Visual Basic for Application in Excel e controlla i parametri del metodo Find applicati all'oggetto Range di WorkSheet; utilizza gli stessi criteri indicati dalla Guida di Excel per specificare i parametri all'interno di Delphi.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2001
    Messaggi
    145
    ecco cosa ho trovato nella guida

    Function Find(What, [After], [LookIn], [LookAt], [SearchOrder], [SearchDirection As XlSearchDirection = xlNext], [MatchCase], [MatchByte], [SearchFormat]) As Range


    pero' nn riesco a utilizzarla...penso che la proprietà che mi serve sia la LookIn...

    Help!!!!

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Originariamente inviato da alanf1981
    ecco cosa ho trovato nella guida

    Function Find(What, [After], [LookIn], [LookAt], [SearchOrder], [SearchDirection As XlSearchDirection = xlNext], [MatchCase], [MatchByte], [SearchFormat]) As Range


    pero' nn riesco a utilizzarla...penso che la proprietà che mi serve sia la LookIn...

    Help!!!!
    Quello che hai trovato è il "prototipo" della dichiarazione, ma se fai clic con il tasto destro del mouse e scegli Guida oppure ? ti appare anche l'argomento con la descrizione estesa dei parametri, sempre che tu abbia installato anche la Guida di riferimento a Visual Basic quando hai eseguito l'installazione di Office sul PC.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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