Fusion excel avec des données - la meilleure façon de faire ?

Le
Roumeg
Bonjour,

Je dois produire des fichiers excel repiquant des chiffres venant de ma
base de données.
On sélectionne un compte et cela génère le fichier excel repiquant les
chiffres de ce compte.

J'étais parti sur le principe d'un modele Excel (en xlsx) qui me
reprenait le gabarit de mon tableau, avec des Couleurs de fond, des
centrages et des colonnes fusionnées

Je copie ce fichier modele avec un fcopieFichier sous un autre nom
j'ouvre le fichier copié avec un XlsOuvre
je fais des affectations des valeurs directement avec des
IDFicXLS[Numlig,"A"]=montitre
Numlig=8;IDFicXLS[Numlig,"C"]=mavaleur
etc

je fais un xlssauve et un xlsferme(IDFicXLS)

MAIS
sur mon premier modèle qui était assez lourd, et provenait de mon
client, j'ai un message d'erreur quand j'ouvre le fichier généré. Si je
passe le msg, j'ai les données mais en perdant tout le formatage.

Je repars from scratch d'un nouveau fichier et là je m'aperçois que sur
les premières lignes, je perds mes couleurs de fond ????
mais pas tout le temps ???

Comment se baser sur une présentation faite sous excel et ne repiquer
que les valeurs ?

Nb je met au point en Windev19 pour le faire ensuite en WB22.

Merci de vos réponses.


Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
phig
Le #26447565
Le 10/10/2017 à 18:41, Roumeg a écrit :
Bonjour,
Je dois produire des fichiers excel repiquant des chiffres venant de ma
base de données.
On sélectionne un compte et cela génère le fichier excel repiquant les
chiffres de ce compte.
J'étais parti sur le principe d'un modele Excel (en xlsx) qui me
reprenait le gabarit de mon  tableau, avec des Couleurs de fond, des
centrages et des colonnes fusionnées
Je copie ce fichier modele avec un fcopieFichier sous un autre nom
j'ouvre le fichier copié avec un XlsOuvre
je fais des affectations des valeurs directement avec des
IDFicXLS[Numlig,"A"]=montitre
Numlig=8;IDFicXLS[Numlig,"C"]=mavaleur
etc ...
je fais un xlssauve et un xlsferme(IDFicXLS)
MAIS ...
sur mon premier modèle qui était assez lourd, et provenait de mon
client, j'ai un message d'erreur quand j'ouvre le fichier généré. Si je
passe le msg, j'ai les données mais en perdant tout le formatage.
Je repars from scratch d'un nouveau fichier et là je m'aperçois que sur
les premières lignes, je perds mes couleurs de fond ????
mais pas tout le temps ???
Comment se baser sur une présentation faite sous excel et ne repiquer
que les valeurs ?
Nb je met au point en Windev19 pour le faire ensuite en WB22.
Merci de vos réponses.
---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com


salut.
j'ai eu le même problème sur des fichiers modele. la seule solution
trouvée a été de passer par excel et ole ( à travers l'excellente classe
cexcel) mais ca veut dire excel obligatoire sur le poste ...
sinon, pour les couleurs, il faut passer par un xlscellule ( d'abord
lecture de la cellule , puis modif, puis ecriture) pour être à peu près
sûr que ca fonctionne ...
exemple :
x est un xlsCellule
//Définition des caractéristiques de la police du document
MaPolice est une Police
MaPolice..Nom="Arial"
MaPolice..Taille
MaPolice..Gras=Vrai
//Définition des caractéristiques du cadre
MonCadre est un Cadre
MonCadre..Couleur = Noir
MonCadre..Epaisseur = 5
MonCadre..Bords=BordTous
POUR i =1 A nBLigneXLS
POUR j = 1 A nBColonneXLS
x = IDFichierXLS[i, xlsnomcolonne(j)]
x.Cadre=MonCadre
x.Police=MaPolice
IDFichierXLS[i, xlsnomcolonne(j)] = x
FIN
FIN
Roumeg
Le #26447579
Bonjour Phig,
Merci de ta réponse
Mais il faut que cela soit produit par un site Webdev.
Et j'évite d'utiliser Word sur mon serveur. Donc je n'ai pas voulu
utiliser cette classe.
Par contre, je suis passé par du xls (97/2003) au lieu d'être en xlsx.
Et là ça fonctionne
Faut que je trouve comment repasser en xlsx après traitement sans
dégat.
Car le xls cela devient rare, les gens n'ont plus l'habitude
phig a formulé la demande :
Le 10/10/2017 à 18:41, Roumeg a écrit :
Bonjour,
Je dois produire des fichiers excel repiquant des chiffres venant de ma
base de données.
On sélectionne un compte et cela génère le fichier excel repiquant les
chiffres de ce compte.
J'étais parti sur le principe d'un modele Excel (en xlsx) qui me reprenait
le gabarit de mon  tableau, avec des Couleurs de fond, des centrages et des
colonnes fusionnées
Je copie ce fichier modele avec un fcopieFichier sous un autre nom
j'ouvre le fichier copié avec un XlsOuvre
je fais des affectations des valeurs directement avec des
IDFicXLS[Numlig,"A"]=montitre
Numlig=8;IDFicXLS[Numlig,"C"]=mavaleur
etc ...
je fais un xlssauve et un xlsferme(IDFicXLS)
MAIS ...
sur mon premier modèle qui était assez lourd, et provenait de mon client,
j'ai un message d'erreur quand j'ouvre le fichier généré. Si je passe le
msg, j'ai les données mais en perdant tout le formatage.
Je repars from scratch d'un nouveau fichier et là je m'aperçois que sur les
premières lignes, je perds mes couleurs de fond ????
mais pas tout le temps ???
Comment se baser sur une présentation faite sous excel et ne repiquer que
les valeurs ?
Nb je met au point en Windev19 pour le faire ensuite en WB22.
Merci de vos réponses.
---
Cet email a fait l'objet d'une analyse antivirus par AVG.
http://www.avg.com

salut.
j'ai eu le même problème sur des fichiers modele. la seule solution trouvée a
été de passer par excel et ole ( à travers l'excellente classe cexcel) mais
ca veut dire excel obligatoire sur le poste ...
sinon, pour les couleurs, il faut passer par un xlscellule ( d'abord lecture
de la cellule , puis modif, puis ecriture) pour être à peu près sûr que ca
fonctionne ...
exemple :
x est un xlsCellule
//Définition des caractéristiques de la police du document
MaPolice est une Police
MaPolice..Nom="Arial"
MaPolice..Taille
MaPolice..Gras=Vrai
//Définition des caractéristiques du cadre
MonCadre est un Cadre
MonCadre..Couleur = Noir
MonCadre..Epaisseur = 5
MonCadre..Bords=BordTous
POUR i =1 A nBLigneXLS
POUR j = 1 A nBColonneXLS
x = IDFichierXLS[i, xlsnomcolonne(j)]
x.Cadre=MonCadre
x.Police=MaPolice
IDFichierXLS[i, xlsnomcolonne(j)] = x
FIN
FIN
phig
Le #26447582
Le 11/10/2017 à 14:48, Roumeg a écrit :
Bonjour Phig,
Merci de ta réponse
Mais il faut que cela soit produit par un site Webdev.
Et j'évite d'utiliser Word sur mon serveur. Donc je n'ai pas voulu
utiliser cette classe.
Par contre, je suis passé par du xls (97/2003) au lieu d'être en xlsx.
Et là ça fonctionne
Faut que je trouve comment repasser en xlsx après traitement sans dégat.
Car le xls cela devient rare, les gens n'ont plus l'habitude


oups! repondu en direct !
salut.
avec xl 97/2003,si il y a des formules, elle ne fonctionneront plus ou
elle vont perdre le caclcul auto.
pareil pour le excel sur le serveur, mais j'ai pas trouvé d'autre
solution... vu la faible volumetrie d'utilisation dans mon cas, j'ai
pris cette optique.
sinon, passer par les cellules, ca avait bien fonctionné, aussi. je suis
revenu à excel uniquement à cause des graphiques qui se redessine après
mise à jour...
Publicité
Poster une réponse
Anonyme