1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| unit ExcelByOLE;
{inspiré notamment de l'unité DriveOleExcel de bernard.lampert@libertysurf.fr, trouvée sur Phidels.com}
interface
procedure OpenClasseur(aFileName: string);
procedure CloseClasseur;
procedure SelectOnglet(aSheet: string);
function LireValeur(aCol: Char; aRow: integer): string;
procedure EcrireValeur(aCol: Char; aRow: integer; aValue: string);
procedure CouleurFond(aCol: Char; aRow: integer; aColorIndex: integer);
procedure SaveClasseur;
implementation
uses
Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs,
StdCtrls,ComObj, ExtCtrls, ExtDlgs;
var
OleApplication, OleWorkBook: variant;
procedure OpenClasseur(aFileName: string);
begin
// création du lien OLE pour la classe référencée par Excel dans la base de registre "Excel.Application"
OleApplication := CreateOleObject('Excel.Application');
OleApplication.Visible:=True; // pour rendre Excel visible
OleWorkBook:=OleApplication.Workbooks.Open(aFileName);
end;
procedure CloseClasseur;
begin
try
OleApplication.Quit;
OleApplication:=Unassigned;
except end;
end;
procedure SelectOnglet(aSheet: string);
begin
OleWorkBook.Worksheets.Item[aSheet].Activate; //connexion à un onglet
end;
function LireValeur(aCol: Char; aRow: integer): string;
var
NumCol: integer;
begin
NumCol:=Ord(UpCase(aCol))-Ord('A')+1;
Result:=OleApplication.Cells[aRow, NumCol].Value;
end;
procedure EcrireValeur(aCol: Char; aRow: integer; aValue: string);
var
NumCol: integer;
begin
NumCol:=Ord(UpCase(aCol))-Ord('A')+1;
OleApplication.Cells[aRow, NumCol].Value:=aValue;
end;
procedure SaveClasseur;
begin
OleApplication.ActiveWorkBook.Save;
end;
procedure CouleurFond(aCol: Char; aRow: integer; aColorIndex: integer);
var
NumCol: integer;
begin
NumCol:=Ord(UpCase(aCol))-Ord('A')+1;
OleApplication.Cells[aRow, NumCol].Select;
OleApplication.ActiveCell.Interior.ColorIndex:=aColorIndex;
end;
end. |
Partager