Bonjour,

Je dois mettre en forme des données contenues dans une feuille Excel, vers un fichier XML.

Les solutions que je code moi-même ne me conviennent pas ainsi que le parseur freeware qui parse le csv en xml (csv2xml)

Je me tourne donc vers vous pour avoir des pistes, voici ce que pourrait être ma feuille Excel simplifiée :


Et voici le fichier xml escompté :
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
 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<N>
	<A>
		<A1 x="A1x" y="A1y" z="A1z"/>
		<A2 x="A2x" y="A2y" z="A2z"/>
		<A3 x="A3x" y="A3y" z="A3z"/>
	</A>
	<B>
		<B1 x="B1x" y="B1y" z="B1z"/>
		<BB>
			<BB1 x="BB1x" y="BB1y" z="BB1z"/>
			<BB2 x="BB2x" y="BB2y" z="BB2z"/>
		</BB>
		<B2 x="B2x" y="B2y" z="B2z"/>
		<B3 x="B3x" y="B3y" z="B3z"/>
	</B>
</N>
Actuellement ma solution la plus avancée, consiste à prendre l'export csv de la feuille Excel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
N;x;y;z
A;;;
A1;A1x;A1y;A1z
A2;A2x;A2y;A2z
A3;A3x;A3y;A3z
B;;;
B1;B1x;B1y;B1z
BB;;;
BB1;BB1x;BB1y;BB1z
BB2;BB2x;BB2y;BB2z
B2;B2x;B2y;B2z
B3;B3x;B3y;B3z
Et en parsant j'obtient :

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
 
<csv_data_records xsi:schemaLocation="mode3-schema.xsd C:\Documents and Settings\lhotte\Bureau\csv2xml\examples\extend\mode3-schema.xsd" source="C:\Fichier_intermediaire_2.csv">
<record N="A"/>
<record N="A1" x="A1x" y="A1y" z="A1z"/>
<record N="A2" x="A2x" y="A2y" z="A2z"/>
<record N="A3" x="A3x" y="A3y" z="A3z"/>
<record N="B"/>
<record N="B1" x="B1x" y="B1y" z="B1z"/>
<record N="BB"/>
<record N="BB1" x="BB1x" y="BB1y" z="BB1z"/>
<record N="BB2" x="BB2x" y="BB2y" z="BB2z"/>
<record N="B2" x="B2x" y="B2y" z="B2z"/>
<record N="B3" x="B3x" y="B3y" z="B3z"/>
</csv_data_records>
<!-- 11 records written -->
Donc je suis assez loin du compte,...
Quelle est la méthode à employer ? Avec Excel 2003 pro, il propose juste un mappage de XSD, cela ne suffit pas (peut être que 2007 est plus avancé ?). Toutes les solutions sont les bienvenues.

Merci