Objet OLE/Excel et grille d'affiche

Darknemo74 Messages postés 5 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 12 août 2005 - 26 oct. 2004 à 15:55
divadav Messages postés 94 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 22 janvier 2009 - 26 oct. 2004 à 16:56
Bnjour, je cherche un moyen de relier une grille à un Objet OLE.
Je voudrais s'il est possible de lire un fichier Excel et de l'afficher dans un grille. Ou s'il existe un objet grille reliable à un fichier ou un truc, comme le fait l'objet DBgrid (je sui pas sure du nom, mais sure que camarche) qui relie un tableau à la base.
Mais bon je trouve pas alors puff.

Donc, je travaille sur Delphi7. Mais normalement je prefere le C++.

Merci d'avance.

1 réponse

divadav Messages postés 94 Date d'inscription lundi 13 janvier 2003 Statut Membre Dernière intervention 22 janvier 2009 2
26 oct. 2004 à 16:56
En fait c'est assez simple : il suffit de créer un objet OLE qui va contrôler Excel, d'ouvrir le classeur voulu, puis de parcourir la feuille que tu veux afficher en copiant le contenu de chaque cellule dans ta grille...

procedure TfrmMain.AfficherExcel(sFichier: String);
var
XL: Variant;
const
MAXLIGNE = 65535;
MAXCOL = 255;
begin

XL := CreateOLEObject('Excel.application');
try
XL.Workbooks.Open(sFichier);

XL.Visible := False; // Rendre Excel visible ou non :

For lg := 1 to MAXLIGNE do begin
For col := 1 to MAXCOL do begin
StringGrid1.Cells[j, i] := XL.Cells[i, j].Value;
End;
End;

//-- FERMER EXCEL PUIS LIBÉRER L'OBJET COM --------//
finally
XL.ActiveWorkbook.Save;
XL.Quit;
XL := Unassigned;
end;

end;

L'objet XL se pilote comme l'application, pour sélectionner la bonne feuille, il suffit de faire un truc du genre :
XL.Sheets['Nom de la feuille'].Select;

J'oubliai : le composant utilisé comme grille d'affichage est un StringGrid, le quatrième composant de la barre supplément.

Normalement, le code marche, mais je ne l'ai pas testé, je n'ai pas Delphi à portée de main.

Oublie pas de valider la réponse si elle te convient...

Keep Cool & Be Wild
Divad
0
Rejoignez-nous