|
|||||||
|
|
|
![]() |
|
|
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: 21:34.


















