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

XML/XSL et SOAP Discussion :

de Excel à xml


Sujet :

XML/XSL et SOAP

  1. #1
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut de Excel à xml
    Salut tout le monde,

    J'ai des fichiers Excel à convertir en XML
    je sais qu'il existe des outils pour le faire directement comme "iMaker for Excel" sauf que c'est payant

    donc je me suis dit transformation xsl donc avant de l'écrire, j'ai procédé à l'enregistrement des excel en html mais impossible de les valider en xhtml (tidy)

    si quelqu'un à une solution

    merci beaucoup pour votre aide

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    A partir de Excel 2003, il est possible d'enregistrer les classeurs directement au format XML.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    perso j'ai eu un projet a faire pour une entreprise avec Excel2000, donc impossible de convertir.
    Je l'ai fait en ASP + C# et .NET evidemment.
    Si tu veux de l'aide, tu peux toujours poster et/ou me contacter, j'essaierai de t'aider
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    salut,

    j'ai une methode un peu lourde, mais qui marche: ca consiste a faire du publipostage dans word de tes données excel. j'ai eu des soucis quand il y a beaucoup de données (un balise <REPONSE></REPONSE> avec un texte de 8 pages dedans, word n'aime pas trop trop)

    voila, j'espere que ca aide.

    Mrl1

  5. #5
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut
    bonjour,

    j'ai utilisé une macro qui marche bien pour la transformation direct en xml

    probleme mon excel contient des image que je dois justement récupérer
    j'ai essayé d'exporter en html pour une transformation xslt mais impossible de le tidyer
    une idée !!!

    merci pour votre aide
    ici le code de la macro pour celui que ça intéresse
    Code:
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    Attribute VB_Name = "XL_to_XML" 
    Sub MakeXML() 
    ' create an XML file from an Excel table 
    Dim MyRow As Integer, MyCol As Integer, Temp As String, YesNo As Variant, DefFolder As String 
    Dim XMLFileName As String, XMLRecSetName As String, MyLF As String, RTC1 As Integer 
    Dim RangeOne As String, RangeTwo As String, Tt As String, FldName(99) As String 
     
    MyLF = Chr(10) & Chr(13)    ' a line feed command 
    DefFolder = "C:\"   'change this to the location of saved XML files 
     
    YesNo = MsgBox("This procedure requires the following data:" & MyLF _ 
     & "1 A filename for the XML file" & MyLF _ 
     & "2 A groupname for an XML record" & MyLF _ 
     & "3 A cellrange containing fieldnames (col titles)" & MyLF _ 
     & "4 A cellrange containing the data table" & MyLF _ 
     & "Are you ready to proceed?", vbQuestion + vbYesNo, "MakeXML CiM") 
     
    If YesNo = vbNo Then 
     Debug.Print "User aborted with 'No'" 
     Exit Sub 
    End If 
     
    XMLFileName = FillSpaces(InputBox("1. Enter the name of the XML file:", "MakeXML CiM", "xl_xml_data")) 
    If Right(XMLFileName, 4) <> ".xml" Then 
     XMLFileName = XMLFileName & ".xml" 
    End If 
     
    XMLRecSetName = FillSpaces(InputBox("2. Enter an identifying name of a record:", "MakeXML CiM", "record")) 
     
    RangeOne = InputBox("3. Enter the range of cells containing the field names (or column titles):", "MakeXML CiM", "A3:D3") 
    If MyRng(RangeOne, 1) <> MyRng(RangeOne, 2) Then 
      MsgBox "Error: names must be on a single row" & MyLF & "Procedure STOPPED", vbOKOnly + vbCritical, "MakeXML CiM" 
      Exit Sub 
    End If 
    MyRow = MyRng(RangeOne, 1) 
    For MyCol = MyRng(RangeOne, 3) To MyRng(RangeOne, 4) 
     If Len(Cells(MyRow, MyCol).Value) = 0 Then 
      MsgBox "Error: names range contains blank cell" & MyLF & "Procedure STOPPED", vbOKOnly + vbCritical, "MakeXML CiM" 
      Exit Sub 
     End If 
     FldName(MyCol - MyRng(RangeOne, 3)) = FillSpaces(Cells(MyRow, MyCol).Value) 
    Next MyCol 
     
    RangeTwo = InputBox("4. Enter the range of cells containing the data table:", "MakeXML CiM", "A4:D8") 
    If MyRng(RangeOne, 4) - MyRng(RangeOne, 3) <> MyRng(RangeTwo, 4) - MyRng(RangeTwo, 3) Then 
      MsgBox "Error: number of field names <> data columns" & MyLF & "Procedure STOPPED", vbOKOnly + vbCritical, "MakeXML CiM" 
      Exit Sub 
    End If 
    RTC1 = MyRng(RangeTwo, 3) 
     
    If InStr(1, XMLFileName, ":\") = 0 Then 
     XMLFileName = DefFolder & XMLFileName 
    End If 
     
    Open XMLFileName For Output As #1 
    Print #1, "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "ISO-8859-1" & Chr(34) & "?>" 
    Print #1, "<meadinkent>" 
     
    For MyRow = MyRng(RangeTwo, 1) To MyRng(RangeTwo, 2) 
    Print #1, "<" & XMLRecSetName & ">" 
      For MyCol = RTC1 To MyRng(RangeTwo, 4) 
      ' the next line uses the FormChk function to format dates and numbers 
         Print #1, "<" & FldName(MyCol - RTC1) & ">" & RemoveAmpersands(FormChk(MyRow, MyCol)) & "</" & FldName(MyCol - RTC1) & ">" 
      ' the next line does not apply any formatting 
      '  Print #1, "<" & FldName(MyCol - RTC1) & ">" & RemoveAmpersands(Cells(MyRow, MyCol).Value) & "</" & FldName(MyCol - RTC1) & ">" 
        Next MyCol 
     Print #1, "</" & XMLRecSetName & ">" 
     
    Next MyRow 
    Print #1, "</meadinkent>" 
    Close #1 
    MsgBox XMLFileName & " created." & MyLF & "Process finished", vbOKOnly + vbInformation, "MakeXML CiM" 
    Debug.Print XMLFileName & " saved" 
    End Sub 
    Function MyRng(MyRangeAsText As String, MyItem As Integer) As Integer 
    ' analyse a range, where MyItem represents 1=TR, 2=BR, 3=LHC, 4=RHC 
     
    Dim UserRange As Range 
    Set UserRange = Range(MyRangeAsText) 
    Select Case MyItem 
     Case 1 
     MyRng = UserRange.Row 
     Case 2 
     MyRng = UserRange.Row + UserRange.Rows.Count - 1 
     Case 3 
     MyRng = UserRange.Column 
     Case 4 
     MyRng = UserRange.Columns(UserRange.Columns.Count).Column 
    End Select 
    Exit Function 
     
    End Function 
    Function FillSpaces(AnyStr As String) As String 
    ' remove any spaces and replace with underscore character 
    Dim MyPos As Integer 
    MyPos = InStr(1, AnyStr, " ") 
    Do While MyPos > 0 
     Mid(AnyStr, MyPos, 1) = "_" 
     MyPos = InStr(1, AnyStr, " ") 
    Loop 
    FillSpaces = LCase(AnyStr) 
    End Function 
     
    Function FormChk(RowNum As Integer, ColNum As Integer) As String 
    ' formats numeric and date cell values to comma 000's and DD MMM YY 
    FormChk = Cells(RowNum, ColNum).Value 
    If IsNumeric(Cells(RowNum, ColNum).Value) Then 
     FormChk = Format(Cells(RowNum, ColNum).Value, "#,##0 ;(#,##0)") 
    End If 
    If IsDate(Cells(RowNum, ColNum).Value) Then 
     FormChk = Format(Cells(RowNum, ColNum).Value, "dd mmm yy") 
    End If 
    End Function 
     
    Function RemoveAmpersands(AnyStr As String) As String 
    Dim MyPos As Integer 
    ' replace Ampersands (&) with plus symbols (+) 
     
    MyPos = InStr(1, AnyStr, "&") 
    Do While MyPos > 0 
     Mid(AnyStr, MyPos, 1) = "+" 
     MyPos = InStr(1, AnyStr, "&") 
    Loop 
    RemoveAmpersands = AnyStr 
    End Function

  6. #6
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    que dit tidy?
    peut etre que tu ne passes pas les bons param

  7. #7
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut
    voici le contenu du fichier config que j'utilise pour le parametrage de tidy:
    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
    output-xml: yes
    wrap-attributes: yes
    break-before-br: yes
    quiet: yes
    indent:auto
    doctype: auto 
    tidy-mark:no 
    enclose-text:yes 
    enclose-block-text:yes 
    drop-font-tags:yes
    fix-backslash:no
    output-xml:yes
    indent-attributes: yes
    add-xml-decl:yes
    numeric-entities:yes
    quote-nbsp:yes
    wrap-asp:yes
    wrap-jste:yes
    wrap-php:no
    clean: no
    break-before-br: yes
    je recupere bien un xml mais mal former donc impossible à l'ouvrir
    l'erreur est du genre :
    Syntaxe non valide dans une section conditionnelle ou CDATA. Erreur de traitement de la ressource
    déjà que la source est ilisible --> plein de script à la microsoft

    une idée
    merci

Discussions similaires

  1. mappin excel , xml et access
    Par Khalid.bounouader dans le forum C#
    Réponses: 1
    Dernier message: 27/08/2008, 14h43
  2. [VBA Excel - XML] Données de référence en ListBox
    Par botakelymg dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 13/06/2008, 11h12
  3. conversion de excel à xml
    Par blaise4714 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 14/10/2007, 20h56
  4. formats fichiers Excel XML Open XML
    Par arkhamon dans le forum Excel
    Réponses: 2
    Dernier message: 25/05/2007, 21h55
  5. [Excel] XML (et DTD ?) depuis XLS
    Par _TM23_ dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 26/04/2007, 11h12

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