PDA

Visualizza la versione completa : [Delphi 7] Ricerca di una parola in un foglio Excel


alanf1981
04-02-2004, 13:50
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!!!!! :ciauz:


Ciaooooooo

alka
04-02-2004, 15:49
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


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! :ciauz:

alanf1981
17-02-2004, 16:53
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! :dhò:

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');

alka
17-02-2004, 17:08
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.

alanf1981
18-02-2004, 12:54
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... :dhò:

Help!!!!

alka
19-02-2004, 11:50
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... :dhò:

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.

Loading