|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2001
Città: Catania
Messaggi: 953
|
Delphi - leggere dati da un foglio Excel
Ciao a tutti,
sto iniziando a lavorare con delphi. Premetto che la mia esperienza con linguaggi di tipo visuale è davvero molto limitata. Dovrei leggere dei dati da un foglio Excel ma non ho idea su come fare. Potreste aiutarmi con qualche esempio o indicandomi dove posso trovare un po di documentazione adatta alle mie scarse conoscenze su questo tipo di programmazione? Grazie in anticipo nic96 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2000
Messaggi: 886
|
Ti posto un po' di codice relativo ad una mia applicazione che avevo scritto tempo fa. Al di là delle personalizzazioni e di qualche "aborto", non è certo un esempio di bella programmazione
![]() Codice:
procedure TForm1.Button1Click(Sender: TObject); var XlApp1, xlApp2 : Variant; f : textfile; k, kan1, kas1, tmpkan1 : integer; ax,bx,cx,dx,ex,fx,gx,ay,by,cy,dy,ey,fy,gy : string[6]; linea, linea2 : string[60]; begin XlApp1 := CreateOleObject('Excel.Application'); XlApp2 := CreateOleObject('Excel.Application'); XlApp1.WorkBooks.Open('c:\anagrafe.xls'); XlApp2.WorkBooks.Open('c:\utenze_non_dom_.xls'); assignfile(f,'c:\match.txt'); rewrite(f); {bx := 'b1'; Edit1.Text := XlApp2.Range[bx];} tmpkan1 := 1; for kas1 := 1 to 11843 do begin for k := 1 to 60 do linea[k] := ' '; for k := 1 to 60 do linea2[k] := ' '; ax := 'A'+IntToStr(kas1); bx := 'B'+IntToStr(kas1); cx := 'C'+IntToStr(kas1); dx := 'D'+IntToStr(kas1); linea := XlApp2.Range[bx]; for kan1 := tmpkan1 to 29237 do begin ay := 'A' + IntToStr(kan1); by := 'B' + IntToStr(kan1); linea2 := XlApp1.Range[by]; if linea = linea2 then begin write(f,linea + ';'); for k := 1 to 60 do linea2[k] := ' '; dy := 'D' + IntToStr(kan1); ey := 'E' + IntToStr(kan1); fy := 'F' + IntToStr(kan1); gy := 'G' + IntToStr(kan1); linea2 := XlApp1.Range[dy]; write(f,linea2 + ';'); linea2 := XlApp1.Range[ey]; write(f,linea2 + ';'); linea2 := XlApp1.Range[fy]; write(f,linea2 + ';'); linea2 := XlApp1.Range[gy]; write(f,linea2 + ';'); linea2 := XlApp1.Range[ay]; write(f,linea2 + ';'); linea2 := XlApp2.Range[cx]; write(f,linea2 + ';'); linea2 := XlApp2.Range[ax]; write(f,linea2 + ';'); linea2 := XlApp2.Range[dx]; writeln(f,linea2 + ';'); tmpkan1 := kan1 - 1; break; end; if linea2 > linea then begin tmpkan1 := kan1 - 1; break; end; end; Edit1.Text := linea; Edit2.Text := linea2; Application.ProcessMessages; end; XlApp1.Quit; XlApp2.Quit; closefile(f); end;
__________________
1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2001
Città: Catania
Messaggi: 953
|
sei un grande
grazie dell'aiuto
nic96 |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:00.