Manipulation de fichier XML avec Excel 2003 en C#.NET

Signaler
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
-
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
-
Bonjour à tous.

Tout d'abord pardonnez moi si je ne suis pas dans la bonne rubrique...

Pouvez-vous m'aider à manipuler des fichiers XML avec Excel 2003 en .NET.

Dans le programme console suivant (cf code ci-dessous), je veux ouvrir un fichier XML avec Excel et l'enregistrer au format XLS (sans me préoccuper de le convertir car je laisse faire Excel).

En n'ommettant pas d'importer ma référence à l'objet COM Interop Excel, j'ai le code suivant qui ne marche pas:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;

namespace XML2XLS
{
    class Program
    {
        public static void Main()
        {
            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();

            object missing = Type.Missing;
            string xmlFile = @"fichier.xml";
            string excelFile = @"fichier.xls";

            Microsoft.Office.Interop.Excel.Workbook excelWb = excelApp.Workbooks._OpenXML(xmlFile, missing);

            // Console.WriteLine("Format " + excelWb.FileFormat.ToString(), missing, missing);

            excelWb.SaveAs (excelFile, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing,);
            excelWb.Close(missing, missing, missing);
            excelApp.Quit();

            excelApp = null;
            excelWb = null;

            Console.WriteLine("Export {0} to {1} successfully", xmlFile, excelFile);
        }

    }
}

4 réponses

Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
hi,

Le moyen le plus simple et rapide de générer des XML ou les lire, utilise le DataSet : DS.WriteXML(...), DS.ReadXML(...)

Sinon tu devra fair eun parser ou alors passer par du Linq

Chris...
- Le sens vital n'est pas un sens unique -
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
2
Je te remercie pour ta réponse mais je ne veux justement pas passer par un parseur XML, je tiens à ce que ce soit Excel qui me convertisse mes fichiers pour la raison que mes fichiers doivent être ouverts par des billes en informatique qui ne connaissent que Word, Excel et Outlook et je souhaite qu'ils puissent manipuler ces fichiers sans avoir à effectuer aucune manipulation autre que double-cliquer dessus pour avoir un tableau Excel.
Messages postés
2641
Date d'inscription
mercredi 2 juin 2004
Statut
Membre
Dernière intervention
8 janvier 2014
14
En Excel 2007, j'utilise la connexion aux données pour me connecté à mes données XML ou SQL, et ensuite j'enregistre le tout comme modèle, avec un rafraichissement des données lors d'un new_document

Et les users font ce qu'ils veullent de ce tableau tout prêt

Chris...
- Le sens vital n'est pas un sens unique -
Messages postés
126
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
9 novembre 2009
2
Merci cboulas mais j'ai précisé Office 2003...