none
Sauvegarde de données dans Excel dans différentes colones RRS feed

  • Question

  • Bonjour,

    Je débute dans la programmation et je ne parviens pas à trouver réponse à mon problème. J'aimerais enregistrer mes données entrées, sur Excel. 
    Le problème, c'est qu'elles s'alignent sur la première colonne car j'utilise le procédé suivant : 

       

        Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
                dlg.FileName = "test";
                dlg.DefaultExt = ".txt";
                dlg.Filter = "Text documents (.xls)|*.xls";

                if (dlg.ShowDialog() == true)
                {
                    FileStream fs = new FileStream(dlg.FileName, FileMode.Create);
                    using (StreamWriter writer = new StreamWriter(fs))
                    {

                        writer.WriteLine("test 1ercolonne");

                        writer.WriteLine("test 2ecolonne");

                    }
                }

    Comment pourrais-je faire pour mettre "test 2ecolonne" dans la 2e colonne ?

    Je vous remercie d'avance

    Cédric

    lundi 30 septembre 2013 14:29

Réponses

Toutes les réponses

  • Bonjour,

    Il faut séparer vos données par un ";" et des Write() pour chaque colonne. Ensuite faites un WriteLine() lorsque vous voulez passer à la ligne suivante. Par exemple :

    writer.Write("test 1ercolonne-1ereligne;");
    writer.Write("test 2ecolonne-1ereligne;");
    writer.Write("test 3ecolonne-1ereligne");
    
    writer.WriteLine();
    
    writer.Write("test 1ercolonne-2èmeligne;");
    writer.Write("test 2ecolonne-2èmeligne;");
    writer.Write("test 3ecolonne-2èmeligne");
    
    

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    lundi 30 septembre 2013 22:47
    Modérateur
  • Bonjour,

    Je vous remercie pour votre réponse mais lorsque je tape votre bout de code, j'obtiens le résultat suivant :

    test 1ercolonne-1ereligne;test 2ecolonne-1ereligne;test 3ecolonne-1ereligne;

    test 1ercolonne-2èmeligne;test 2ecolonne-2èmeligne;test 3ecolonne-2èmeligne;

    Toujours dans une même colonne.

    J'ai essayé de changer d'extensions de fichiers mais ça ne marche pas.

    Bien à vous

    Cédric

    mardi 1 octobre 2013 04:55
  • Bonjour

    Vous voulez écrire dans un fichier Excel, mais vous écrivez en effet dans  un fichier texte. 

    Je vois  quelques possibles solutions:
     

    1. écrire un fichier .CSV  - fichier texte, mais dépends des paramètres régionaux du votre système. Si vous utilisez pour séparer ce qui est définies dans le paramètre "séparateur de liste", il lit bien les colonnes, sinon il affiche une seule colonne. Le même fichier CSV peut fonctionner correctement sur un ordinateur et incorrecte sur un autre. 

    2. Utiliser Open XML pour écrire un fichier XLSX (compatible avec Office 2007 et après.) Ici vous avez un petit exemple : http://www.codeproject.com/Articles/371203/Creating-basic-Excel-workbook-with-Open-XML

    3. Utiliser les outils de développement VSTO. Vous avez des exemples ici:

    http://msdn.microsoft.com/fr-fr/office/hh128771#Cells

    4. Utiliser ODBC pour vous connecter et envoyer une requête SQL Update, voir  ici: http://social.technet.microsoft.com/Forums/office/en-US/bcfd81ac-8f9d-4bdc-92b2-5940919719ad/excel-odbc-driver-installation

    Je dirais que la deuxième méthode c’est la plus facile a implémenter.  

    Cordialement


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    • Marqué comme réponse CC307 mardi 1 octobre 2013 08:40
    mardi 1 octobre 2013 08:01
  • Je vous remercie !!!

    l'extension .CSV a marché à merveille.

    Passer une bonne journée et encore un grand merci.

    Cédric

    mardi 1 octobre 2013 08:39