Whismeril
Messages postés19028Date d'inscriptionmardi 11 mars 2003StatutNon membreDernière intervention24 avril 2024
-
12 mars 2014 à 15:15
Whismeril
Messages postés19028Date d'inscriptionmardi 11 mars 2003StatutNon membreDernière intervention24 avril 2024
-
21 mars 2014 à 10:10
Bonjour,
je cherche à ecrire un xml au format Excel 2003 avec Linq To Xml, FrameWork 3.5.
Dans la balise workbook il y a deux fois le Namespace urn:schemas-microsoft-com:office:spreadsheet, sans alias (xmlns=) et avec (xmlns:s).
Je n'arriave pas à le faire avec Linq to xml.
Ce code
XNamespace s = "urn:schemas-microsoft-com:office:spreadsheet";
XNamespace x = "urn:schemas-microsoft-com:office:excel";
XDocument xDoc = new XDocument(
new XProcessingInstruction("mso-application", "progid='Excel.Sheet'"),
new XElement(s+"Workbook",
new XElement("Toto", "Toto")));//juste pour avoir quelque chose dans la balise
xDoc.Save("test.xml");
XNamespace s = "urn:schemas-microsoft-com:office:spreadsheet";
XNamespace x = "urn:schemas-microsoft-com:office:excel";
XDocument xDoc = new XDocument(
new XProcessingInstruction("mso-application", "progid='Excel.Sheet'"),
new XElement(s+"Workbook", new XAttribute(XNamespace.Xmlns + "x","urn:schemas-microsoft-com:office:excel") ,new XAttribute(XNamespace.Xmlns + "s", "urn:schemas-microsoft-com:office:spreadsheet"),
new XElement("Toto", "Toto")));//juste pour aoir quelque chose dans la balise
xDoc.Save("test.xml");
ecrit le xml, avec les deux alias et "s": devant workbook:
new XElement("Workbook",new XAttribute(XNamespace.Xmlns, "urn:schemas-microsoft-com:office:spreadsheet"), new XAttribute(XNamespace.Xmlns + "x","urn:schemas-microsoft-com:office:excel") ,new XAttribute(XNamespace.Xmlns + "s", "urn:schemas-microsoft-com:office:spreadsheet")//ne compile pas
new XElement("Workbook",new XAttribute(XNamespace.Xmlns + "", "urn:schemas-microsoft-com:office:spreadsheet"), new XAttribute(XNamespace.Xmlns + "x","urn:schemas-microsoft-com:office:excel") ,new XAttribute(XNamespace.Xmlns + "s", "urn:schemas-microsoft-com:office:spreadsheet")//erreur le nom ne peut pas être null
new XElement("Workbook",new XAttribute("xmlns", "urn:schemas-microsoft-com:office:spreadsheet"), new XAttribute(XNamespace.Xmlns + "x","urn:schemas-microsoft-com:office:excel") ,new XAttribute(XNamespace.Xmlns + "s", "urn:schemas-microsoft-com:office:spreadsheet"),
//erreur Le préfixe '' ne peut pas être redéfini à partir de '' vers 'urn:schemas-microsoft-com:office:spreadsheet' au sein de la même balise d'élément de début.
Une fois le document généré, on affecte partout le namesapce par défaut grace à cette methode d'extension
Penser aux balises de coloration syntaxique: bouton <>, préciser le langage :<code csharp>.
Quand la solution est trouvée, mettre la discussion Résolue.