Excel & delphi [Résolu]

cs_amsou 13 Messages postés jeudi 12 août 2004Date d'inscription 10 septembre 2004 Dernière intervention - 16 août 2004 à 12:31 - Dernière réponse : hesnogood 10 Messages postés lundi 10 janvier 2005Date d'inscription 30 juillet 2007 Dernière intervention
- 25 oct. 2005 à 15:42
Bonjour à tous,
je suis nouvelle dans le monde Delphi et j'aimerais s'il vous plait savoir si l'on peut programmer avec delphi,une application qui permet d'importer vers excel des colonnes d'un fichier texte.
Merci d'avance pour votre aide.
Afficher la suite 

14 réponses

Répondre au sujet
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 16 août 2004 à 12:44
+3
Utile
Salut amsou,

Suivant la version de delphi que tu as, tu retrouve un ensemble de composants permettant de communiquer avec l'application Excel. (TApplicationExcel) Ces composants devrais de te permettre de réaliser l'importation de colonnes d'un fichier texte vers Excel.

Tu trouveras des tutoriels comme celui là te permettant de te familiariser avec ces composants.

Pilotage OLE d'Excel à partir de Delphi

Bonne Prog,

Olivier.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Loulibier
cs_amsou 13 Messages postés jeudi 12 août 2004Date d'inscription 10 septembre 2004 Dernière intervention - 16 août 2004 à 17:07
0
Utile
Merci beaucoup Olivier.Tu me sauves la vie. je te ravaudrais ça!
Commenter la réponse de cs_amsou
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 16 août 2004 à 17:33
0
Utile
Pas de quoi, les forums ça sert à ça !
Commenter la réponse de Loulibier
cs_amsou 13 Messages postés jeudi 12 août 2004Date d'inscription 10 septembre 2004 Dernière intervention - 17 août 2004 à 19:38
0
Utile
Bonjour Olivier,
Je ne suis pas sortie du pétrin car je croie que ce que tu m'as préconisé est valable pour un application client\serveur alors que moi j'ai le fichier texte et l'excel sur mon poste de travail.
Merci.
Commenter la réponse de cs_amsou
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 17 août 2004 à 21:37
0
Utile
Salut amsou,

cela ne gène en rien tu peux très bien travailler en local, en plus j'aurais tendance à te dire l'inverse, c'est à dire que tu as intérêt à ce que Excel soit sur le poste ou ton application tourne.

FAQ DELPHI --> EXCEL

Regarde ce liens peut être t'aidera t-il ;)

je te met deux trois ligne de code qui t'aiderons peut être aussi !

// Ouverture d'un fichier Excel ou CSV avec TExcelApplication
ExcelApplication.Workbooks.Open('Chemin + Nom de ton fichier',EmptyParam,0,
                                    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                                    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                                    EmptyParam,EmptyParam,0);

// Creer une nouvelle page Excel
var
  Doc       : _Workbook;
  MaFeuille :_Worksheet;
begin
  Doc := ExcelApplication.Workbooks.Add(EmptyParam,0);

  MaFeuille := Doc.Worksheets[1] as _worksheet;
  MaFeuille.Range['A1','A1'].Value2 := 'Coucou';


Le problème avec ces composants et Microsoft c'est que c'est pas forcement les mêmes fonctions suivant la version d'excel que tu utilises !

Bonne Prog,

Olivier.
Commenter la réponse de Loulibier
cs_amsou 13 Messages postés jeudi 12 août 2004Date d'inscription 10 septembre 2004 Dernière intervention - 9 sept. 2004 à 17:11
0
Utile
Bonjour,
je voudrais s'il vous plait savoir comment indiquer la position d'un caractère(chiffre) d'un texte à un programme delphi.
Merci!
amsou
Commenter la réponse de cs_amsou
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 9 sept. 2004 à 23:31
0
Utile
sois plus explicite amsou, donne un exemple de ce que tu souhaites réalisé avec le plus de détails possible.

Olivier
Commenter la réponse de Loulibier
cs_amsou 13 Messages postés jeudi 12 août 2004Date d'inscription 10 septembre 2004 Dernière intervention - 10 sept. 2004 à 09:23
0
Utile
Bonjour Olivier,
En fait j'ai un fichier.txt (ce sont des chiffres) que je veux transférer dans une feuille de calcul Excel.Donc chaque colonne du fichier text dans une colonne bien spécifique de la feuille Excel en plus pour une des colonnes,je dois même arrondir les chiffres avant de les exporter dans la feuille Excel.
Merci pour ta disponibilité.
amsou
Commenter la réponse de cs_amsou
cs_amsou 13 Messages postés jeudi 12 août 2004Date d'inscription 10 septembre 2004 Dernière intervention - 10 sept. 2004 à 10:40
0
Utile
Olivier, je voulais parler de nombres et non de chiffres.
Merci.

amsou
Commenter la réponse de cs_amsou
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 10 sept. 2004 à 14:29
0
Utile
Je suis pas mal occupé, aujourd'hui :sad)

A quoi ressemble ton fichier txt, quel est sa structure ?
Les données dans ton fichier Txt, sont tels à position fixe ou délimiter par des séparateurs tel que ';' ?

Quelle est réelement ton problème ? la récupération des données du fichier txt ? ou l'écriture dans le fichier xls ?

Olivier.
Commenter la réponse de Loulibier
cs_amsou 13 Messages postés jeudi 12 août 2004Date d'inscription 10 septembre 2004 Dernière intervention - 10 sept. 2004 à 16:53
0
Utile
Je ne voudrais pas te déranger,tu peux prendre tout ton temps.
Les deux,j'arrive à le faire pour quelques valeurs mais exporter tout le txt dans le xls et chacun dans une position bien spécifique?
Voici une ligne de mon fichier txt:

8020 11 162822 113912.830000 217150

Dans le fichier xls,des cellules sont déjà remplies c'est d'autres qu'on rempli avec ces valeurs.La 4e valeur est celle qu'il faut arrondir (pour toutes les lignes et mettre dans XL.Cells[5,7]; XL.Cells[6,7]; XL.Cells[7,7]; ...; XL.Cells[n,7].
J'espère que tu m'as comprise.
Merci.

amsou
Commenter la réponse de cs_amsou
cs_amsou 13 Messages postés jeudi 12 août 2004Date d'inscription 10 septembre 2004 Dernière intervention - 10 sept. 2004 à 16:54
0
Utile
Pendant ce temps je cherche de mon côté.
amsou
Commenter la réponse de cs_amsou
Loulibier 323 Messages postés jeudi 6 juin 2002Date d'inscription 24 septembre 2008 Dernière intervention - 10 sept. 2004 à 18:37
0
Utile
exemple pour récupérer tous les éléments de ta ligne de texte :

procedure StringGetParam(sText  : string; chSeparator : char; slParams : TSTringList);
var
  iPos : integer;
  sParam : string;
begin
  slParams.Clear;

  sText := Trim(sText);

  while length( sText ) > 0 do
  begin
    iPos := Pos( chSeparator, sText );
    if iPos = 0 then
    begin
      sParam := sText;
      sText := '';
    end
    else
    begin
      sParam := Copy( sText, 1, iPos - 1 );
      Delete(sText, 1, iPos );
    end;
    slParams.Add( sParam );
  end;
end;

var
  slParams : TstringList;
  Value       : integer;

slParams := TstringList.Create;
// tu lis ton fichier dans un TStringList
StringList.LoadFromFile('c:\toto.txt');

//puis tu fais ton traitement

for i := 0 to StringList.count - 1 do
begin
  // Tu récupère tous les éléments de la ligne de texte sélectionner dans un TStringList.
  StringGetParam(StringList.strings[i],#32,slParams);

  // tu récupère valeur par valeur tu les arrondis et tu les transfert sur excel.
  for j := 0 to slParams.Count-1 do
  begin
     Value :=  Round(StrToInt(slParams.Strings[j]));
      XL.Cells[i,j] := IntToStr(Value);
  end;
end;

slParams .Free;
end;


voilà une base sur lequel tu peux t'appuyer, nésites pas à me demander des explications.... ou à me dire que je suis à coté de la plaque ;)

Bonne Prog et Bon week-end,

Olivier 8-)
Commenter la réponse de Loulibier
hesnogood 10 Messages postés lundi 10 janvier 2005Date d'inscription 30 juillet 2007 Dernière intervention - 25 oct. 2005 à 15:42
0
Utile
Commenter la réponse de hesnogood

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.