sylvunix
Messages postés93Date d'inscriptionmardi 11 avril 2006StatutMembreDernière intervention 4 mars 2009
-
26 avril 2007 à 16:01
sylvunix
Messages postés93Date d'inscriptionmardi 11 avril 2006StatutMembreDernière intervention 4 mars 2009
-
27 avril 2007 à 11:03
Bonjour à tous,
J'essaie de charger dans un TOleContainer un feuille Excel lue depuis un fichier, de modifier cette feuille, de la sauvegarder puis de l'imprimer.
J'ai regardé sur DelphiFr et sur d'autres sites tous les sujets pouvant avoir un rapport mais sans vraiment avoir trouvé mon bonheur.
Mais rien ne s'affiche ... Lorsque je tente d'activer ma feuille, il me dit qu'il ne la trouve pas ...
- Affichage d'une feuille Excel :
OleContainer: TOleContainer;
oExcel, oActiveSheet, oCells: OleVariant;
OleContainer.CreateObject('Excel.Sheet',false);
OleContainer.DoVerb(ovShow);
oExcel:=OleContainer.OleObject.Application;
oActiveSheet:=oExcel.ActiveSheet;
oCells:=oActiveSheet.Cells;
for i:=2 to 8 do oCells.Item[2,i].Value:= 'En-tête';
Là, cela fonctionne. Mais comment charger la feuille depuis un fichier ?
Si quelqu'un pouvait me donner un coup de pouce, ce serait vraiment sympa ...
sylvunix
Messages postés93Date d'inscriptionmardi 11 avril 2006StatutMembreDernière intervention 4 mars 2009 27 avril 2007 à 09:28
Merci pour ces informations mais mon problème est plus lié à l'utilisation du TOleContainer. Je souhaite en effet afficher ma feuille dans une form et non pas lancer Excel en tant qu'application.
En analysant toute les fonctions, j'ai enfin trouvé une solution :
OleContainer.CreateObjectFromFile('mon_fichier.xls', false);
OleContainer.DoVerb(ovInPlaceActivate);
oExcel:=OleContainer.OleObject.Application;
oActiveSheet:=oExcel.ActiveSheet;
oCells:=oActiveSheet.Cells;
for i:=2 to 8 do oCells.Item[2,i].Value:= 'En-tête';
Oniria
Messages postés292Date d'inscriptiondimanche 14 mars 2004StatutMembreDernière intervention18 décembre 20143 26 avril 2007 à 20:12
Bonjour,
Je te passe un petit bout de code
var filtre, nom_Excel, nom_Fp,texte1,texte2,num_fp,NOK,Rep_Fp,txt : string;
i,j,k,l : integer;
xl,feuille,vWorkSheet : variant; // partie utilisée pour la communication avec EXCEL
aRange,aLigne : AnsiString;
vCell : Variant;
sr : TSearchRec;
table : array[0..20000] of integer;
nb_table,ind_fp : integer;
begin
// Exportation vers Excel
Form1.SaveDialog1.FileName:=Form1.ComboBox1.Text+'.xls';
if Form1.SaveDialog1.Execute then // C'est une fenêtre de dialogue pour donner un nom d'export
begin
nom_Excel:=Form1.SaveDialog1.FileName;
// Ouverture Excel
Xl:=CreateOLEObject('Excel.application'); // Ouverture d'excel
XL.Visible:=true; // Excel est visible
feuille:=xl.Workbooks.open(nom_Excel); // On ouvre le fichier "nom_excel"
vWorksheet:=feuille.WorkSheets['FPB']; // On active la page du fichier qui s'appelle FPB