Darknemo74
Messages postés5Date d'inscriptionjeudi 14 août 2003StatutMembreDernière intervention12 août 2005
-
26 oct. 2004 à 15:55
divadav
Messages postés94Date d'inscriptionlundi 13 janvier 2003StatutMembreDernière intervention22 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++.
divadav
Messages postés94Date d'inscriptionlundi 13 janvier 2003StatutMembreDernière intervention22 janvier 20092 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.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...