IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Conserver les zéros non significatifs


Sujet :

ASP

  1. #1
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut Conserver les zéros non significatifs
    Bonjour,

    J'ai besoin d'extraire des données au format Excel.

    Pour cela, j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.ContentType = "application/msexel"
    Le problème, est que je dois générer une colonne ayant le format suivant :
    00001
    00002
    00003
    .....
    Et évidemment, à l'arrivée, Excel m'affiche :
    1
    2
    3
    ...
    Quelqu'un connait l'astuce pour conserver les zéros non significatifs en début de chaine ?

    Merci

  2. #2
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    J'ai un peu du mal a comprendre :

    extraire des données
    et :
    Response.ContentType = "application/msexel"
    Ceci dit, deux pistes, si ton but est de fournir une sortie au format excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.ContentType = "application/vnd.ms-excel"
    et essaye aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.write(cstr(ma variable))
    ou , au pire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function formNumber(x_, lon_)
        while len(x_)<lon_
            x_="0" & x_
        wend
        formNumber=x_
    end function
     
    Response.write(formNumber(cstr(ma variable), 5)


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  3. #3
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    rapidement il faut exporter ta valeur vers xl comme ceci en ajoutant un ' devant le nombre, la valeur sera alors interprétée comme une chaîne sans suppression des 0 facultatifs

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Merci de vos réponses.

    roro06

    Le but est bien de fournir une sortie au format Excel (je boucle sur un recordset).

    J'ai essayé avec Response.ContentType = "application/vnd.ms-excel"

    J'ai essayé le Cstr(MaVariable)

    J'ai essayé avec ta fonction

    => Même résultat, il me supprime les zéros à gauche

    vva

    J'avais déjà tenté, mais dans la feuille Excel, l'apostrophe est conservée dans les données


    D'autres idées ?

    Merci

  5. #5
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    le problème vient effectivement d'XL, y a t il moyen au moment de créer le fichier XL via ASP de formater la colonne si oui à ce moment la là colonne recevant le 0001 doit être en format texte

  6. #6
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Ou alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.write(maVariable & " ")
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Response.write(maVariable & "&nbsp;")
    'Pas sûr de mon coup


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  7. #7
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Pas plus de succès.

    J'ai aussi essayé ça, mais, pareil :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.Write(String(5 - len(trim(cStr(maVariable ))), "0") & trim(cStr(maVariable )))

  8. #8
    vva
    vva est déconnecté
    Membre averti Avatar de vva
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 463
    Points : 447
    Points
    447
    Par défaut
    exactement ton soucis et d'XL vers ta page ASP ou de ton code ASP vers XL ? ou peut être les deux

  9. #9
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    exactement ton soucis et d'XL vers ta page ASP ou de ton code ASP vers XL ? ou peut être les deux
    A priori, ce serait d'ASP vers XL


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  10. #10
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    C'est bon, j'ai réussi avec une autre méthode de création d'un fichier Excel.

  11. #11
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    C'est bon, j'ai réussi avec une autre méthode de création d'un fichier Excel.
    qui est .. ?


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  12. #12
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Citation Envoyé par roro06 Voir le message
    qui est .. ?
    C'est un vieux bout de code que j'ai ressorti. Mais avec cette méthode, on ne peut pas faire de mise en page.

    Voila, en résumé, le principe :

    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
     
    txtSQL = txtSQL & "SELECT * FROM MaTable "
    Set rs = server.CreateObject("ADODB.recordset")
    rs.cursorlocation = aduseclient
    rs.cachesize = 5
    rs.open txtSQL, Application("MonDsn"), 1, 3
     
    if not rs.EOF then
        Response.Buffer = TRUE
        Response.Clear
     
        chemin = server.MapPath("\Base") & "\Donnees.XLS"
        Set fso = CreateObject("Scripting.FileSystemObject")
        fso.DeleteFile chemin, true
        Set a = fso.CreateTextFile(chemin, True)
        ' Titres des colonnes
        ' chr (34) remplace les guillements à la suite de l'instruction
        a.writeLine "ID;PWXL;N;E" ' Début du codage excel
        a.writeLine "C;Y1;X1;K" & CHR(34) & ("Code") & CHR(34)
        a.writeLine "C;Y1;X2;K" & CHR(34) & ("Nom") & CHR(34)
        a.writeLine "C;Y1;X3;K" & CHR(34) & ("Prenom") & CHR(34)
        Ligne = 2
        Str_Numero = 1
        Do Until rs.EOF
            Col1 = String(5 - len(trim(cStr(Str_Numero))), "0") & trim(cStr(Str_Numero))
    	a.writeLine "C;Y" & Ligne & ";X1;K" & CHR(34) & (Col1) & CHR(34)
    	a.writeLine "C;Y" & Ligne & ";X2;K" & CHR(34) & (rs("UO4") & "-" & rs("NOM")) & CHR(34)
    	a.writeLine "C;Y" & Ligne & ";X3;K" & CHR(34) & (rs("UO4") & "-" & rs("PRENOM")) & CHR(34)
            rs.MoveNext
    	Assise = Assise + 1
        Loop
     
        a.writeLine "E" ' Fin du codage excel
        a.Close
        rs.Close
        set rs = Nothing
        Set a = Nothing
        Set fso = Nothing
        Response.Redirect("http://MonServeur/Base/Donnees.XLS")
    End if
    Des commentaires ?

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Salut,

    C'est dingue qu'on ne puisse pas écrire une chaine de caractères dans xl commençant par "0"...

    ++

  14. #14
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Citation Envoyé par StephM_asp Voir le message
    Salut,

    C'est dingue qu'on ne puisse pas écrire une chaine de caractères dans xl commençant par "0"...

    ++
    Et le code que j'ai donné n'est qu'un extrait. Je dois exporter aussi des dates au format yyyy/mm/dd => Excel les transformait automatiquement au format dd/mm/yyyy.

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Le truc de fou quoi...

    Je viens de fouiner rapidement sur le web et ils parlent de ça à plusieurs reprises :
    Essaies de jouer sur le format des cellules :

    Format text permettra de garder les 0 en tête de numéros mais encore faut il
    qu'il y soit

    Format personnalisé mettre comme type : 0000000000 ce qui permetra de garder
    le 0 en tête de numéro ou de le rajouter si il a été oublié
    As tu la possibilité de toucher ton xl avant de faire tes imports ? Où bien est-ce utilisé par des clients (par exemple) ?

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Tiens ce site aussi avec des tuto concernant xl et les asp
    http://www.tutorialized.com/tutorial...xcel-and-ASP/1

    Qui sait... Ils y présentent un composant (free) qui a l'air pas mal du tout.

    Enfin, la page crosoft :
    http://support.microsoft.com/default...;EN-US;q195951

    ++

  17. #17
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Merci StephM_asp,

    Tu penses bien que j'ai fouillé aussi sur le net.

    Pour l'instant, j'obtiens le résultat attendu avec mon code actuel.

    Mais la première option reste un challenge.

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Oui effectivement, je me doute bien que tu as du y passer quelques heures...

    As-tu tout de même regardé ce composant gratuit ?

    Ce qu'il faudrait c'est pouvoir forcer le formatage des cellules visiblement ?

    ++

  19. #19
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Sinon, il y a OWC. Il faut regarder la doc installée en mm temps que le composant il y a des options qui doivent permettre de définir le nombre de chiffres après la virgule. Si il s'agit de zéro au début du nombre il faut vraiment considérer les valeurs comme du texte.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 112
    Points : 112
    Points
    112
    Par défaut
    Hello,

    Oui comme du texte ou encore, "ils" parlent de formats "personnalisés", avec justement un exemple "000000" qui garderait les "0" donc.
    Il semble possible de formater des dates, des n° de tel etc.

    Évidemment, il faut trouver un système qui ne demande pas d'installer xl sur la serveur. Un composant bien chiadé devrait faire l'affaire.

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enlever les zéros non significatifs
    Par Keke des Iles dans le forum Delphi
    Réponses: 9
    Dernier message: 17/03/2017, 00h02
  2. Réponses: 0
    Dernier message: 19/04/2011, 14h34
  3. Eliminer des zéros non significatifs
    Par maubeuge59 dans le forum Cobol
    Réponses: 16
    Dernier message: 15/01/2008, 23h25
  4. garder les zéros non significatif
    Par Michelk12 dans le forum Informix
    Réponses: 3
    Dernier message: 15/12/2007, 14h54
  5. Réponses: 3
    Dernier message: 12/09/2006, 12h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo