Bonjour à tous,
Je me demandais s'il était possible de convertir directement dans le code des fichiers .csv en .xls sans que ce soit visible pour l'utilisteur. Je souhaite garder la mise à forme du .csv.
Merci d'avance pour votre aide.
Isa
Bonjour à tous,
Je me demandais s'il était possible de convertir directement dans le code des fichiers .csv en .xls sans que ce soit visible pour l'utilisteur. Je souhaite garder la mise à forme du .csv.
Merci d'avance pour votre aide.
Isa
Oui, c'est possible. Essaie le code suivant :
Bon, y'a aussi du code de gestion d'une ProgressBar, mais ça t'indiquera où mettre un tel code... ;-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 procedure TMainForm.SaveAsXLS(const FileName: String); Var CSV : String ; _Excel : TExcelApplication ; begin _Excel:=Nil; Try // C'est un fichier CSV que l'on sauve, tout d'abord... CSV:=ExpandFileName(ChangeFileExt(FileName,feTMP)); Try SaveAsCSV(CSV) ; Except DeleteFile(CSV); Raise; End; Progress.Position:=0; Progress.Max:=3; // On efface à la main, sinon Excel demande la confirmation. If FileExists(FileName) Then DeleteFile(FileName); // Création du serveur Excel. _Excel:=TExcelApplication.Create(Nil); // Ouverture du serveur Excel. ShowStatus(ssOpeningExcel); _Excel.Connect; Progress.StepIt; // Ouverture du .CSV ShowStatus(ssOpeningCSV); _Excel.Workbooks.OpenText(CSV,xlWindows,1,xlDelimited,xlTextQualifierDoubleQuote,False,False,True,False,False,False,EmptyParam,EmptyParam,EmptyParam,1036); Progress.StepIt; // Sauvegarde en .XLS ShowStatus(ssSavingXLS); _Excel.Workbooks.Get_Item(1).SaveAs(ExpandFileName(FileName),OleVariant(xlWorkbookNormal),EmptyParam,EmptyParam,False,False,xlNoChange,xlUserResolution,False,EmptyParam,EmptyParam,1036); Progress.StepIt; Finally // Fermeture du serveur Excel. ShowStatus(ssShutingDownExcel); If Assigned(_Excel) Then Try _Excel.Quit; _Excel.Disconnect; Finally FreeAndNil(_Excel); End; Progress.StepIt; ShowStatus(EmptyStr); DeleteFile(CSV); End; end;
Cette fonction sauve un CSV de manière "temporaire", puis le convertit en XLS avant d'effacer le CSV (devenu inutile).
Par contre, il n'y a pas de mise en page dans un CSV...
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Heuu....
Question idiote: il sort d'ou le????SaveAsCSV(CSV)
Comme le, c'est quoi?feTMP
J'ai pas tout compris je crois
Je suis vraiment trop nulle
Du reste du programme. Ca va sauver les données courantes au format CSV.Envoyé par Isa31
Une chaîne de ressource : "feTMP" pour "File Extension : TMP".Envoyé par Isa31
Le code n'est pas à copier/coller directement, voyons, c'est un extrait "brut de fonderie" de mon propre programme... Tu dois te focaliser sur la variable _Excel et le séquencement d'appel de ses méthodes.Envoyé par Isa31
Pleure pas, va, t'es pas nulle, c'est juste une question d'habitude et d'expérience.Envoyé par Isa31
Demande si tu as des soucis avec ce code, OK ?
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager