OVH Cloud OVH Cloud

Export Excel de données SQL

3 réponses
Avatar
tonio932
Je souhaite générer via ASP.net des fichiers XLS correspondants aux réultats de procs SQL server.
En utilisant le type MIME, je suis confronté à 3 problèmes, visiblement insolubes :
- les champs de type texte ne contenant que des chiffres sont interprétés par Excel en nombre (suppression des zéros de préfixe)
- les champs numériques sont interprétés en texte si le séparateur décimal du client n'est pas le même que celui du serveur (interdisant du coup toute manipulation de chiffres dans Excel)
- les caractères accentués francais ne sont pas gérés

Connaissez vous une autre méthode ? Ou bien un composant qui permettrait de lire les types de données retournés par SQL Server et formatter les colonnes Excel (idéalement avant remplissage des datas)?
Petit précision : je ne peux pas installer Excel sur le serveur IIS...
Merci,
Tonio

3 réponses

Avatar
ceoph
Si tu ne peut pas installer Excel sur le serveur IIS tu
dois surrement utiliser une connexion OLEDB vers le
fichier !
Pour le 1er pb, tu peut mettre une apostrophe devant tes
données pour qu'elles soient (dans excel) interpretées
comme du texte (par ex: pour 123abc tu insère '123abc).

Pour les séparateurs décimaux, essaye de récupérer par
les objets d'environnement le séparateur du serveur et
met le meme dans ton fichier.

Pour les caractère accentués je n'ai pas eu de pb.

Pour une autre méthode, j'ai essayé d'utiliser
l'interoperablité des objets COM avec le framework .net,
mais c'est tres gourmand en ressources. En plus, si tu ne
peut pas installer Excel sur le servuer !!!

En esperant t'avoir aidé


Ceoph

-----Message d'origine-----
Je souhaite générer via ASP.net des fichiers XLS


correspondants aux réultats de procs SQL server.
En utilisant le type MIME, je suis confronté à 3


problèmes, visiblement insolubes :
- les champs de type texte ne contenant que des chiffres


sont interprétés par Excel en nombre (suppression des
zéros de préfixe)
- les champs numériques sont interprétés en texte si


le séparateur décimal du client n'est pas le même que
celui du serveur (interdisant du coup toute manipulation
de chiffres dans Excel)
- les caractères accentués francais ne sont pas gérés

Connaissez vous une autre méthode ? Ou bien un


composant qui permettrait de lire les types de données
retournés par SQL Server et formatter les colonnes Excel
(idéalement avant remplissage des datas)?
Petit précision : je ne peux pas installer Excel sur le


serveur IIS...
Merci,
Tonio

.



Avatar
ceoph
Pour l'environnement client (je n'ai jamis fais mais)
Request.UserLanguages devrait t'aider !

Si tu instal Excel sur le serveur tu peut alors utiliser
les objet com Excel ce qui te premet de créer des
classeurs, des feuilles, des cells, changer de
police, ....
Si les nom de tes colonnes change, tu ne peut pas
utiliser les index ? colonne[1], colonne[2] ?

Ce lien devrais t'aider. Regarde aussi les references à
la fin de la page.

http://www.dotnet-fr.org/sections.php3?
op=viewarticle&artidR

Sache aussi que la création de classeur Excel par un
serveur n'est pas recommender par Microsoft !


-----Message d'origine-----
Merci pour la réponse mais.... : (voir dans message)

"ceoph" a écrit :

Si tu ne peut pas installer Excel sur le serveur IIS




tu
dois surrement utiliser une connexion OLEDB vers le
fichier !



Non, j'exporte directement en XLS.
Si je parviens à installer Excel sur le serveur, ca


permet de faire quoi ?

Pour le 1er pb, tu peut mettre une apostrophe devant




tes
données pour qu'elles soient (dans excel)




interpretées
comme du texte (par ex: pour 123abc tu




insère '123abc).

Mais cela implique qu'il faut connaitre le nom des en-


têtes de colonne concernées...qui varient pour chaque
proc....


Pour les séparateurs décimaux, essaye de récupérer




par
les objets d'environnement le séparateur du serveur




et
met le meme dans ton fichier.



tu voulais dire récupérer le séparateur du client je


suppose ? j'avoue ne pas savoir comment on fait... t'es
sûr que c'est possible ?



Pour les caractère accentués je n'ai pas eu de pb.



Je pense avoir trouvé...


Pour une autre méthode, j'ai essayé d'utiliser
l'interoperablité des objets COM avec le




framework .net,
mais c'est tres gourmand en ressources. En plus, si tu




ne
peut pas installer Excel sur le servuer !!!

En esperant t'avoir aidé


Merci


Ceoph

>-----Message d'origine-----
>Je souhaite gÃf©nÃf©rer via ASP.net des fichiers




XLS
correspondants aux rÃf©ultats de procs SQL server.
>En utilisant le type MIME, je suis confrontÃf© Ãf 3
problÃf¨mes, visiblement insolubes :
>- les champs de type texte ne contenant que des




chiffres
sont interprÃf©tÃf©s par Excel en nombre




(suppression des
zÃf©ros de prÃf©fixe)
>- les champs numÃf©riques sont interprÃf©tÃf©s en




texte si
le sÃf©parateur dÃf©cimal du client n'est pas le




mÃfªme que
celui du serveur (interdisant du coup toute




manipulation
de chiffres dans Excel)
>- les caractÃf¨res accentuÃf©s francais ne sont pas




gÃf©rÃf©s
>
>Connaissez vous une autre mÃf©thode ? Ou bien un
composant qui permettrait de lire les types de




donnÃf©es
retournÃf©s par SQL Server et formatter les colonnes




Excel
(idÃf©alement avant remplissage des datas)?
>Petit prÃf©cision : je ne peux pas installer Excel




sur le
serveur IIS...
>Merci,
>Tonio
>
>.
>



.



Avatar
Julien Adam
Il existe un produit qui génère des documents Excel sans avoir besoin
d'Excel : http://officewriter.softartisans.com/officewriter-37.aspx

C'est pas donné mais selon le contexte ça peut se justifier.

Julien Adam

"ceoph" wrote in message
news:286a01c47084$c3af3510$
Pour l'environnement client (je n'ai jamis fais mais)
Request.UserLanguages devrait t'aider !

Si tu instal Excel sur le serveur tu peut alors utiliser
les objet com Excel ce qui te premet de créer des
classeurs, des feuilles, des cells, changer de
police, ....
Si les nom de tes colonnes change, tu ne peut pas
utiliser les index ? colonne[1], colonne[2] ?

Ce lien devrais t'aider. Regarde aussi les references à
la fin de la page.

http://www.dotnet-fr.org/sections.php3?
op=viewarticle&artidR

Sache aussi que la création de classeur Excel par un
serveur n'est pas recommender par Microsoft !


-----Message d'origine-----
Merci pour la réponse mais.... : (voir dans message)

"ceoph" a écrit :

Si tu ne peut pas installer Excel sur le serveur IIS




tu
dois surrement utiliser une connexion OLEDB vers le
fichier !



Non, j'exporte directement en XLS.
Si je parviens à installer Excel sur le serveur, ca


permet de faire quoi ?

Pour le 1er pb, tu peut mettre une apostrophe devant




tes
données pour qu'elles soient (dans excel)




interpretées
comme du texte (par ex: pour 123abc tu




insère '123abc).

Mais cela implique qu'il faut connaitre le nom des en-


têtes de colonne concernées...qui varient pour chaque
proc....


Pour les séparateurs décimaux, essaye de récupérer




par
les objets d'environnement le séparateur du serveur




et
met le meme dans ton fichier.



tu voulais dire récupérer le séparateur du client je


suppose ? j'avoue ne pas savoir comment on fait... t'es
sûr que c'est possible ?



Pour les caractère accentués je n'ai pas eu de pb.



Je pense avoir trouvé...


Pour une autre méthode, j'ai essayé d'utiliser
l'interoperablité des objets COM avec le




framework .net,
mais c'est tres gourmand en ressources. En plus, si tu




ne
peut pas installer Excel sur le servuer !!!

En esperant t'avoir aidé


Merci


Ceoph

>-----Message d'origine-----
>Je souhaite gÃf©nÃf©rer via ASP.net des fichiers




XLS
correspondants aux rÃf©ultats de procs SQL server.
>En utilisant le type MIME, je suis confrontÃf© Ãf 3
problÃf¨mes, visiblement insolubes :
>- les champs de type texte ne contenant que des




chiffres
sont interprÃf©tÃf©s par Excel en nombre




(suppression des
zÃf©ros de prÃf©fixe)
>- les champs numÃf©riques sont interprÃf©tÃf©s en




texte si
le sÃf©parateur dÃf©cimal du client n'est pas le




mÃfªme que
celui du serveur (interdisant du coup toute




manipulation
de chiffres dans Excel)
>- les caractÃf¨res accentuÃf©s francais ne sont pas




gÃf©rÃf©s
>
>Connaissez vous une autre mÃf©thode ? Ou bien un
composant qui permettrait de lire les types de




donnÃf©es
retournÃf©s par SQL Server et formatter les colonnes




Excel
(idÃf©alement avant remplissage des datas)?
>Petit prÃf©cision : je ne peux pas installer Excel




sur le
serveur IIS...
>Merci,
>Tonio
>
>.
>



.