Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

generer puis uploader un fichier excel (ou csv, ou open office)

12 réponses
Avatar
bruno
Bonjours, j'ataque une grosse partie de mon programme :
je doit créer des fichier excel (ou csv, ou open office)
puis les uploader vers l'utilisateur.

mes nescessitées sont
-plusieurs onglets (au revoir csv)
-lisible par excel 2000
-mise en page legere (encadrements)

en fait je fait l'adaptation client leger d'un logiciel que j'ai
moi-meme developpé sous windev. avec windev j'ai piloté excel a
distance (objet COM je croit..., utilisation telecommandée de visual
basic)

est-ce qu'on peut faire ca avec php? je sait que des didacticiels
existent, je vait les lires de ce pas, mais ne voulant pas faire
d'erreure, je prefere vous demander les regle de bonne conduite (rah!
ces stagiaires!)

comment cela fonctionne-t-il? excel doit-il etre installé sur le poste
serveur? dans ce cas, avec un serveur linux c'est foutu, avec windows,
c'est une license qui dort? open office dispose-t-il d'une API permet
de palier a ce probleme?

pourquoi excel? je ne l'ai, pas choisit, c'est une demande expresse de
mon donneur d'ordre afin de pouvoir faire plein de zolies opérations
pointues!

sinon, encore une question, pour ma version windev, pour repondre a un
de ses besoins j'ai créé une sortie parametrable, peut créer 1472
requetes diferentes... (selction ou non de n'importe quel champ de
n'importe quelle table de la base de données), pour ce faire j'ai
procedé par une enorme concatenation conditionnelle pour créer ma
requete (trop long pour la poster ... dsl) cela vous semble-t-il la
bonne methode??

enfin si plusieures API existent lesquelle me conseillez vous??

MERCI beaucoup de m'avoir lut, je vous salue en priant pour une reponse!

10 réponses

1 2
Avatar
jibux
bruno wrote:

Bonjours, j'ataque une grosse partie de mon programme :
je doit créer des fichier excel (ou csv, ou open office)
puis les uploader vers l'utilisateur.

mes nescessitées sont
-plusieurs onglets (au revoir csv)
-lisible par excel 2000
-mise en page legere (encadrements)

en fait je fait l'adaptation client leger d'un logiciel que j'ai
moi-meme developpé sous windev. avec windev j'ai piloté excel a
distance (objet COM je croit..., utilisation telecommandée de visual
basic)

est-ce qu'on peut faire ca avec php?


OUI, avec pear
http://pear.php.net/package/Spreadsheet_Excel_Writer

--
jeb
http://jebissey.free.fr

Avatar
bruno
pour ceux que ca interresse :
http://beta.phpindex.com/articles/articles_lire.php3?element)0&print=1

sinon, apres une (pseudo?) mûre erflection, je me dit :
areuh!
...
heu, non, je me dit que trois alternative me tentent :
-utiliser un objet COM a distance (c'est y possible ca?)->excel
-developper un module PHP en C++ (c'est y pas dur ca?)->openoffice
-utiliser l'API javaj pre-existante + le module PHP.java =>openoffice

objet COM : http://www.php.net/manual/en/ref.com.php
module PHP java : (http://www.php.net/manual/fr/ref.java.php)
API openoffice : http://api.openoffice.org/

Solution de facilité :
http://pear.php.net/package/Spreadsheet_Excel_Writer/download
mais ca me gene, ce n'est pas encore une version stable... (je doit me
justifier de mes classe PEAR employées)

Ce qui me tente vraiment c'est faire un petiti module a php ecrit en
C++ (c'est banal ce que je dit??)
mais... je suis un stagiaire, ne l'oubliez ajamais : je ne sait jamais
dans quoi je me lance, et une fois lancé, j'oublie ce que je doit
faire pour me concentrer sur la generation aléatoire (quoique
reguliere) de bugs!
non, serieux, pour quelqu'un qui a de petites bases, mais n'est pas si
bete que ca... ca le fait un module? ou c'est trop dur?

et... derniere question : c'est ou sur la doc qu'ils parlent du dev
d'un module?

pas la : http://www.php.net/manual/en/api.php (j'ai rien compris, du
monis, j'ai pas compris qu'ils parlaient de modules ...)
voila!
Avatar
John GALLET
Bonjour,

heu, non, je me dit que trois alternative me tentent :
-utiliser un objet COM a distance (c'est y possible ca?)->excel
-developper un module PHP en C++ (c'est y pas dur ca?)->openoffice
-utiliser l'API javaj pre-existante + le module PHP.java =>openoffice


Une quatrième selon le type de données gérées : générer plusieurs
fichier CSV (un par "onglet").

(je doit me justifier de mes classe PEAR employées)
Normal, vu le nombre de merdes qui sont présentes dans ce "repository",

il y a un tri sérieux à effectuer (un peu comme le Seigneur, le bon
grain, l'ivraie, tout ça quoi ;-)...)

Ce qui me tente vraiment c'est faire un petiti module a php ecrit en
C++ (c'est banal ce que je dit??)
Oui et non. La doc est pas mal (comparée à JNI par exemple...) et les

exemples existent à la pelle (tout le code de PHP repose sur des
modules, donc on a des tétrachiées d'exemples à lire). Mais ça reste des
connaissances spécifiques d'un mode de fonctionnement bien particulier.

non, serieux, pour quelqu'un qui a de petites bases, mais n'est pas si
bete que ca... ca le fait un module? ou c'est trop dur?


Un **stage** c'est fait pour **être encadré** dans les tâches qu'on a à
faire. Donc :
1) le maître de stage doit fournir/choisir/orienter le choix de la
solution la plus appropriée à son besoin
2) il doit être capable d'aider (ou de faire aider par une autre
personne) pour ENCADRER.
Oui, je sais, ce n'est pas comme ça que ça se passe, en pratique, des
connards payent au tiers du smig des grands débutants en leur donnant un
boulot qui requiert plusieurs années d'expérience et les laissent se
démmerder (et obtiennent ce pour quoi ils ont payé... du code de
stagiaire non encadré.).

et... derniere question : c'est ou sur la doc qu'ils parlent du dev
d'un module?
Chapitre VII.


pas la : http://www.php.net/manual/en/api.php (j'ai rien compris, du
monis, j'ai pas compris qu'ils parlaient de modules ...)
Presque : http://www.php.net/manual/en/zend.php


Maintenant si tu n'es pas à la base un **bon** développeur C et
connaissant de plus les makefiles et les potions de compilation et de
link pour attaquer une API (openoffice) écrite en C++ à partir d'un
programme écrit en C (php) tu oublies tout de suite. Ou alors, tu fais
le reste du cahier des charges avant, et seulon le temps qu'il te reste,
tu attaques ce projet là.

a++;
JG

Avatar
bruno
sinon, quelle est la marche a suivre pour ecrire un module?
le language? C, C++?

Maintenant si tu n'es pas à la base un **bon** développeur C et
connaissant de plus les makefiles et les potions de compilation et de
link


Quest-ce que "les potions de compilation" pour toi?
http://www.php.net/manual/fr/zend.creating.php =>

Compiling Modules
There are basically two ways to compile modules:
-Use the provided "make" mechanism in the ext directory, which
also allows building of dynamic loadable modules.
-Compile the sources manually.
The first method should definitely be favored, since, as of PHP 4.0,
this has been standardized into a sophisticated build process. The fact
that it is so sophisticated is also its drawback, unfortunately - it's
hard to understand at first. We'll provide a more detailed introduction
to this later in the chapter, but first let's work with the default
files.
aperement la compilation est optimisée, non?

qu'entend tu par link pour attaquer une API C++ en C?
n'est-ce pas une bete histoire de pointeurs?

bon, ok je minimise la difficultée, masi faut bien aprendre un jours,
non?

le plus dur etant la doc PHP ET OOo en anglias...
si quelqu'un connaissait des articles (PHP au moins) en francais :)

Avatar
John GALLET
Re,

sinon, quelle est la marche a suivre pour ecrire un module?
Lire la doc indiquée. Disséquer un exemple, par exemple

ext/mysql/php_mysql.c

le language? C, C++?
C. PHP est écrit en C.


Quest-ce que "les potions de compilation" pour toi?
Typo : options, pas potions.


aperement la compilation est optimisée, non?
Sauf que pour linker avec une lib C++ tu devras probablement le faire à

la main. Le plus simple c'est de trouver une extension wrappant du C++
déjà existante, dans ext/ ou dans pecl, et de repomper les fichiers .m4
(au moins).

qu'entend tu par link pour attaquer une API C++ en C?
Fais un man ld sur une machine Unix. Si ma mémoire est bonne, il faut

des options des #ifdef spécifiques à la compil et/ou au link pour qu'un
exe en C puisse appeler une lib en C++, pour autant même que ce soit
faisable dans tous les cas.

n'est-ce pas une bete histoire de pointeurs?
Non. Le monsieur sait de quoi il cause, si c'est bête, il dit que c'est

bête, si c'est compliqué, il dit que c'est compliqué. Appeler du C
depuis du C++ c'est un peu chiant mais ça se fait (à grands coups de
#ifdef __cplusplus extern "C" dans tous les coins) l'inverse, on m'a
plusieurs fois indiqué que c'est faisable, mais je ne sais pas comment
exactement.

bon, ok je minimise la difficultée, masi faut bien aprendre un jours,
non?
Oui. Mais tout seul dans ton coin, ça fait beaucoup de difficultés

accumulées dans des domaines techniques différents. Je n'ai pas dit que
c'est infaisable, seulement que le pourcentage de chances d'aboutir à
quelque chose :
1) qui marche
2) qui est possible à maintenir (et pas de la bidouille de la mort)
3) dans les temps
est faible.

le plus dur etant la doc PHP ET OOo en anglias...
Non, ça évite les horreurs de traduction.


si quelqu'un connaissait des articles (PHP au moins) en francais :)
De cette doc là, je n'en connais pas. Vérifier sur le site de Zend

néanmoins. Pour staroffice, c'est clairement pas le bon NG pour poser la
question.

a++;
JG

Avatar
bruno
Oui. Mais tout seul dans ton coin, ça fait beaucoup de difficultés
accumulées dans des domaines techniques différents. Je n'ai pas dit que
c'est infaisable, seulement que le pourcentage de chances d'aboutir à
quelque chose :
1) qui marche
2) qui est possible à maintenir (et pas de la bidouille de la mort)
3) dans les temps
est faible.


ton argument 2, partie 2 m'a tué...
pas de bidouilee? :'(
:'(

bon, je vait le tenter mais en freelance... CAD en dehors du travail...
donc pas bcp de temps... mais... j'en avait envie! mechant monsieur! (
;p )

Avatar
bruno
John GALLET a gentillement repondut:

Bonjour,
bonjours :)

Une quatrième selon le type de données gérées : générer plusieurs
fichier CSV (un par "onglet").
C'est une belle solution... non envisageable, dsl :)

(je doit me justifier de mes classe PEAR employées)
Normal, vu le nombre de merdes qui sont présentes dans ce "repository",

il y a un tri sérieux à effectuer (un peu comme le Seigneur, le bon
grain, l'ivraie, tout ça quoi ;-)...)
Merci ca me rassure sur la vision que j'avait de PEAR

Ce qui me tente vraiment c'est faire un petiti module a php ecrit en
C++ (c'est banal ce que je dit??)
Oui et non. La doc est pas mal (comparée à JNI par exemple...) et les

exemples existent à la pelle (tout le code de PHP repose sur des
modules, donc on a des tétrachiées d'exemples à lire). Mais ça reste des
connaissances spécifiques d'un mode de fonctionnement bien particulier.
non, serieux, pour quelqu'un qui a de petites bases, mais n'est pas si
bete que ca... ca le fait un module? ou c'est trop dur?


Un **stage** c'est fait pour **être encadré** dans les tâches qu'on a à
faire. Donc :
1) le maître de stage doit fournir/choisir/orienter le choix de la
solution la plus appropriée à son besoin
2) il doit être capable d'aider (ou de faire aider par une autre
personne) pour ENCADRER.
Oui, je sais, ce n'est pas comme ça que ça se passe, en pratique, des
connards payent au tiers du smig des grands débutants en leur donnant un
boulot qui requiert plusieurs années d'expérience et les laissent se
démmerder (et obtiennent ce pour quoi ils ont payé... du code de
stagiaire non encadré.).
Bon, si je fait ca, c'est pour avoir qqchose a presenter a mon

examen... j'ai appris au bout d'un ans que tout mon code windev
(suffisant pour presenter mes 5 "actions" n'etait pas utilisable :
windev ne ceoorespond aps aux critere exigibles...
la faute a qui? a mon ecole qui a employé un prof de 21 ans, punk sur
les obrd et se foutant totalement de nous... nous disant : "oui c'est
bon", et au vu des resultats un "VRAI" prof nous a vu 5 heures pour
nous dire : "jetez tout a la poubelle"... mouais, vive les ecoles
privées...
donc si mon tuteur m'a donné son aval pour me lancer dans ce dev, ce
n'est pas pour ne rien faire ou quoique ce soit, c'est pour que j'ai de
a prog beton (comprenez en C, et donc adaptée a mon examen) a
presenter. maintenant, lui meme n'a pas les conniassances, ni le temps
(pas sa faute) pour m'aider dans mes projets... donc oui je me demmerde
tout seul depuis le debut... mias au moins en un ans, j'ai appris des
tas de choses en entreprise ( a l'ecole : j'ai survolé le WHERE des
requetes SQL et recu un magnifique GROS livre INUTIL sur le C... c'est
tout...)
Donc j'eatait vraiment tenté par ce dev, que j'envisageait deja
limité a mes besoins mais open source pour lancer le mouvement...
c'est vrai qu'une ouverture de PHP sur open office ce serait beau, non?
Maintenant, vu ce que tu me dit..
...je vait encore me renseigner un peu, mias je risque de laisser
tomber ce projet, pour utiliser la classe PEAR...
...qui va deja me sortir des oreilles!
en meme temps, mon besoin, suffisant serait de donner ne parametre un
tableau, a chaque case du tableau : une cellule, saur pour deux
balises/valeurs en debut de ligne ou colonne :
<border=1>
<cellule=NomCellule>
ces deux balise pouvant se combiner.
la prememiere declenchant un encadrement sur toute la ligne
la seconde declanchat une copie des toutes les cellules suivantes dans
un autre onglet, jusqu'a la balise fermante, ou la meme blaise avec un
autre attirbut
...
ca ne doit aps etre trop compliqué a faire.

je voyaiot deja le code comme permettant , en ecriture seule, de faire
des oprérations primaire
création d'un nouveau doc
definitino du nom
ecriture dans une cellule donnée
création d'un encadrement aux coordonées données
création d'un nouvel onglet
basculement entre onglet
sauvegarde du tout

et une grosse procedure pour correspondre a mes besoins, les petites
oprations primaires pouvant permettre, si j'ai le droit de laisser ce
module open source, de lancer la machine...
...si qqun est tenté pour reprndre mon code ensuite...

voila
ps: module externe hein!

et... derniere question : c'est ou sur la doc qu'ils parlent du dev
d'un module?
Chapitre VII.


pas la : http://www.php.net/manual/en/api.php (j'ai rien compris, du
monis, j'ai pas compris qu'ils parlaient de modules ...)
Presque : http://www.php.net/manual/en/zend.php

snif je pleure alors, j'ai survolé un bout de cette doc (en anglais

:'( )
bon, je me lance, ils font un desriptif pas a pas... ca m'a l'air bon
pour apprendre :)

Maintenant si tu n'es pas à la base un **bon** développeur C et
connaissant de plus les makefiles et les potions de compilation et de
link pour attaquer une API (openoffice) écrite en C++ à partir d'un
programme écrit en C (php) tu oublies tout de suite. Ou alors, tu fais
le reste du cahier des charges avant, et seulon le temps qu'il te reste,
tu attaques ce projet là.
lors de mon precedent sur vol, ils parlaient de compilateur specifique

"zend" ou je ne sait plus trop quoi... ou alors de compiler a la main
mais que c'estit dur et rebarbatif...
...j'espere qu'ne environnement windows, on peut aussi compiler, sinon,
je suis mal lol...
a++;
JG
a++

BDS


Avatar
Marc Quinton
bruno wrote:

http://pear.php.net/package/Spreadsheet_Excel_Writer/download
mais ca me gene, ce n'est pas encore une version stable... (je doit me
justifier de mes classe PEAR employées)


a mon avis, Pear n'est pas si pire que cela surtout vu les compétences
et le temps dont tu disposes pour realiser ce que tu dois faire.

cet excel writer (nom original) fonctionne parfaitement dans
mon service depuis bien longtemps. Il permet de gerer les
onglets et donc de fournir dans le meme fichier plusieurs
feuilles avec des données différentes. Nous l'utilisons
dans le cadre d'une GED maison.

voici d'autres pistes :

* http://fr.openoffice.org/Documentation/Outils/index.html

SHOOo

SHOOo, une classe PHP qui permet de créer une table HTML et un fichier au format Calc (sxc) à partir
du résultat d'une requête SQL ou du contenu d'un tableau PHP, illustrant ainsi l'ouverture du format
XML d'OOo et son traitement possible en dehors de la suite

avis personnel : beurk ...

* le futur format d'enregistrement de Openoffice (2)
est Opendocument dont l'autre nom est OASIS.

ez-publish qui est un CMS ecrit en php gere deja ce format,
il y a fort a parier que ce format sera correctement géré
par php via des librairies dans quelques temps.

http://www.phpindex.com/news/news_lire.php3?element)72

Avatar
Eric Demeester
dans (in) fr.comp.lang.php, "bruno" ecrivait
(wrote) :

Bonjour Bruno,

Bon, si je fait ca, c'est pour avoir qqchose a presenter a mon
examen... j'ai appris au bout d'un ans que tout mon code windev
(suffisant pour presenter mes 5 "actions" n'etait pas utilisable :
windev ne ceoorespond aps aux critere exigibles...


Peut-être que si, et si tel est le cas, peut-être vaudrait-il mieux pour
toi de ne pas jeter tout ce que tu as développé plutôt que de te lancer
dans un nouveau développement avec un nouveau langage...

Si ton problème est de piloter OpenOffice avec Windev, c'est possible,
non en utilisant l'API d'OpenOffice, mais en exploitant directement le
format XML des fichiers OOo :

http://www.windasso.org/
-> Wind'Asso
-> Windeveries d'octobre 2004
-> WriterOOo : Classes et programme d'exemple pour piloter
OpenOffice v1.1.2

Au cas où cela t'intéresserait de poursuivre cette discussion, je
positionne la suite sur <news:fr.comp.developpement.agl.windev>, car
nous sommes hors charte ici :)

Amicalement,

--
Eric

Avatar
bruno


a mon avis, Pear n'est pas si pire que cela surtout vu les compétences
et le temps dont tu disposes pour realiser ce que tu dois faire.

cet excel writer (nom original) fonctionne parfaitement dans
mon service depuis bien longtemps. Il permet de gerer les
onglets et donc de fournir dans le meme fichier plusieurs
feuilles avec des données différentes. Nous l'utilisons
dans le cadre d'une GED maison.


je note, je te fait confiance, et je teste!
MERCI!
ps :^pourquoi pas de version stable, si il tourne bien?
ma peur => derniere version en date du 06 2004... le projet est-il
toujours soutenu?
et :
Dependencies:
PEAR Package: OLE 0.5 or newer
.. OLE... mff tu est sous windows?
pourquoi un dependance a OLE? => automation?

1 2