begin process at 2010 02 10 11:57:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > EXPORTER UN DATASET DANS UNE FEUILLE DE CALCUL OPENOFFICE

EXPORTER UN DATASET DANS UNE FEUILLE DE CALCUL OPENOFFICE


 Information sur la source

Note :
Aucune note
Catégorie :Base de Donnees Classé sous :exporter données, openoffice, tableur, fonction rappel Niveau :Initié Date de création :08/11/2007 Date de mise à jour :01/11/2008 14:57:52 Vu / téléchargé :5 409 / 535

Auteur : beckerich

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Une petite routine sans prétention qui permet d'exporter un TTable, un TQuery, un TClientDataset ou autre chose vers une nouvelle feuille de calcul OpenOffice.
J'ai regroupé les routines dans un objet et ajouté quelques propriétés pour le formatage des cellules. Intéressant : utilisation d'une fonction de rappel pour formater les cellules depuis l'application. Je dois encore compléter les routines de formatage (encadrement, rotation de texte, ...), mais je n'ai pas trop de temps car mon restaurant est prioritaire.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

01 novembre 2008 14:57:52 :
J'ai regroupé les routines dans un objet et ajouté quelques propriétés pour le formatage des cellules. Intéressant : utilisation d'une fonction de rappel pour formater les cellules depuis l'application. Je dois encore compléter les routines de formatage (encadrement, rotation de texte, ...), mais je n'ai pas trop de temps car mon restaurant est prioritaire.

 Sources du même auteur

Source avec Zip Source avec une capture GÉNÉRATEUR DE CALENDRIER TYPE AGENDA

 Sources de la même categorie

Source avec Zip INTERBASE FIREBIRD IBEXPERT par opgiat
Source avec Zip CREE ALIAS AUTOMATIQUEMENT CREATION REPERTOIRE ET TABLE AUSI par opgiat
Source avec Zip CRÉE UN RÉPERTOIRE ET CRÉE CES TABLES PAR PROGRAMME par opgiat
Source avec Zip Source avec une capture CONNEXION MYSQL ET RECUPERATION DANS BASE ACCESS par eli42
Source avec Zip Source avec une capture LIER DEUX TDBGRID par cantador

Commentaires et avis

Commentaire de Delphiprog le 18/11/2007 23:57:15 administrateur CS

Voici un code innovant (ça nous change de l'éternel Microsoft Excel),réutilisable et plutôt bien écrit.
N'y avait-il pas d'autres moyens que d'utiliser des variants forts gourmands en mémoire ?
La suite Open Office n'expose-t-elle pas un certain nombre d'interfaces ?

Commentaire de beckerich le 19/11/2007 08:13:20

Bonjour DelphiProg,
merci pour le commentaire. Il y a sûrement moyen d'écrire cela d'une manière plus efficace. Le problème est que je suis restaurateur, passionné de programmation, si si c'est compatible... Je n'ai pas vraiment le temps d'affiner mes programmes. J'ai écrit mon programme de gestion du restaurant sur une base interbase, et je veux ne plus avoir à utiliser m$office, pas envie de payer.
Pour compléter un peu, voici le code pour créer soit un document nouveau, soit un document à partir d'un modèle :

[code]
const
  CS_OPENOFFICE = 'com.sun.star.ServiceManager';
  CS_DESKTOP    = 'com.sun.star.frame.Desktop';
  CS_TABLEUR    = 'private:factory/scalc';
  CS_BLANK      = '_blank';
  CS_EDITEUR    = 'private:factory/swriter';

//swriter pour le traitement de texte.
//scalc pour le tableur
//sdraw pour l'éditeur de dessin
//simpress pour l'éditeur de présentation (équivalent de PowerPoint)
//smath pour l'éditeur de formule mathématique
//swriter/Global Document document maitre
//swriter/web Pour l'éditeur HTML

procedure CreerNouveauDocOO(var NouveauClasseur: Variant; var Instance: variant;
                              s_type: string; s_modele: string = '' );
const
  pr= 'file:///';
begin
  { document vide de type indiqué }
  if Length(s_modele) = 0 then
  begin
    NouveauClasseur := CreeDesktopOO(Instance).LoadComponentFromURL(s_type, CS_BLANK, 0, VarArrayCreate([0, -1], varVariant));
  end
  else
  begin
    if FileExists(s_modele) then
    begin
      OOoTools.OpenOffice := Instance;
      { OpenOffice gère les chemins de fichier sous la forme d'URL, il faut donc transformer les chemins de type c:\rep\toto.pas en file:///rep/toto.pas }
      NouveauClasseur := CreeDesktopOO(Instance).LoadComponentFromURL(pr+StringReplace(s_modele , '\', '/',[rfReplaceAll]),
                                  CS_BLANK, 0,
                                  VarArrayOf([MakePropertyValue('AsTemplate', True)]));
    end
    else
      Exception.CreateFmt('Le modèle de fichier %s n''existe pas.', [s_modele]);
  end;
end;
[/code]

Commentaire de Delphiprog le 19/11/2007 10:53:15 administrateur CS

Pense aussi à mettre à jour l'unité DriveOOCalc.pas.

Petite remarque :
dans DriveOOCalc.pa, tu écris :
OpenOfficeDesktop :=
        Instance.createInstance('com.sun.star.frame.Desktop');

Il serait plus judicieux d'utiliser les constantes que tu as déclaré dans la partie interface (d'ailleurs, est-bien leur place d'être exposées ?) en écrivant :
OpenOfficeDesktop :=
        Instance.createInstance(CS_DESKTOP);

C'est un très bon travail que tu as fait là et merci de le partager avec cette communauté.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

dbgrid copier/coller [ par Reynaldd ] Bonjour a tous, Voila mon PB, je recupere le resultat d'un ADOQuery dans un DBGrid. Jusque là, pas de PB. Ensuite, je voudrai copier le contenu d Manipuler OpenOffice.org avec Delphi [ par dyvim ] Cela fait maintenant une semaine que je galère pour réaliser un publipostage avec openoffice (en le pilotant avec delphi). Est ce que quelqu Récupérer des données avec un classeur d'OpenOffice [ par darky93 ] J'ai créé un petit programme pour me familiariser avec le contrôle d'OpenOffice. J'arrive à ouvrir un document type classeur, &#22 problême avec les nombres dans un classeur OpenOffice [ par darky93 ] Bonjour!Je fait un  programme qui doit "fonctionné" aussi bien avec Excel et OpenOffice. Avec Excel "j'ai pas trop de problèmes", mais OpenOffice [ par mathieu49 ] Bonjour à tous Comment modifier le texte d'une cellule dans OpenOffice Calc en passant par Delphi. Merci d'avance OpenOffice: detection de l'événement de la fermeture d'un document openoffice [ par fabipsorg ] Bonjour à tous,ma question est la suivante : Comment je peux détecter l'événement relatif à la fermeture d'un document ouvert searchstring [ par battreuck ] bonjour a toutes et a tous, mon probleme: je souhaite faire une recherche dans un tableur, et pour se, j'utiliserai bin searchstring mais je sait pas Génération de documents PDF avec Delphi et OpenOffice [ par acarre ] Bonjour,Je développe actuellement une application permettant la conversion de documents au format .doc vers le format .pdf. Pour se faire, j'utilise l open office [ par titiyo ] bonjourvoila avec delphi 7 , j'essaye d'ouvrir un fichier .cvs avec oppen office et j'ai un message d'erreur : Methode 'LoadcomponentFromURL' non suop


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales