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

C# Discussion :

Changer la couleur d'une cellule dans une feuille excel par code.


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 20
    Par défaut Changer la couleur d'une cellule dans une feuille excel par code.
    Bonjour,
    Je souhaite définir la couleur d'une cellule dans une feuille excel générée dynamiquement.
    J'ai essayé avec une instruction du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      feuille.Range["A1","D1"].Style.Interior.Color="#FFFFFF";
    mais ca ne fonctionne pas..

    De plus ne connaissant pas à l'avance le nombre de colonne il faudrait que je puisse définir mon Range dynamiquement...avec une instruction dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     feuille.Range[feuille.Cells[x,y],Missing]
    J'ai cherché dans les diverses ressources disponibles, mais je n'ai pas trouvé ....

    Ce n'est qu'un programme de test pour apprendre à manipuler les fichiers donc y a pas mal des choses qui ne sont t pas très bien menées mais je vous fourni l'ensemble du code au cas ou......
    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
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.Office.Interop.Excel;
    using System.Data.SqlClient;
     
    namespace ConsoleApplication1
    {
        class Program
        {
            static Microsoft.Office.Interop.Excel.Application excel; 
            static Workbooks lesWorkbooks;
            static Workbook classeur;
            static Worksheet feuille;
            static Range monRange;
            static object M = System.Reflection.Missing.Value;
            public enum TypeEncadrement { ToutesCellulesFin, ToutesCellulesMoyen, Aucun, ExtérieurRangeFin, ExtérieurRangeMoyen };
     
            static void Main(string[] args)
            {
                Console.Write("hello !!!!!");
                Console.ReadKey();
     
                GestionExcel();
                Console.WriteLine("fin de la mission.....");
                Console.ReadKey();
            }
     
     
            private static SqlDataReader GetRead(SqlCommand com)
            {
                return com.ExecuteReader();
            }
            public static bool GestionExcel()
            {
                bool test = false;
                try
                {
     
                    SqlConnection con = new SqlConnection();
                    con.ConnectionString = "Data Source=FABRICE-PC;Initial Catalog=LearningCompany;Integrated Security=True;Pooling=False";
     
     
                    excel = new Application();
                    excel.Visible = true;
     
                    Console.WriteLine("ouverture du fichier dans excel.....");
                    classeur = excel.Workbooks.Open("d:\\Classeur1.xlsx",0);
                    feuille = classeur.Sheets[1];
                    try
                    {
                        con.Open();
                        Console.WriteLine("ouverture de la connection avec la BDD");
                        SqlCommand com = new SqlCommand("SELECT * FROM Client", con);
     
     
                        for (int i = 1; i < GetRead(com).FieldCount; i++)
                        {
                          //  classeur.Styles.Add("toto");
                          //  classeur.Styles["toto"].Interior.Color =
                          // feuille.Range["A1", "D1"].Style.Interior.Color = "#FFFF00";
     
     
                            //Ici je voudrait définir la couleur de chaque cellule.....
     
                            feuille.Cells[1, i] = GetRead(com).GetName(i);
     
                        }
                        int ligne = 2;
                        while (GetRead(com).Read())
                        {
                            feuille.Cells[ligne, 1] = GetRead(com).GetString(1);
                            feuille.Cells[ligne, 2] = GetRead(com).GetString(2);
                            feuille.Cells[ligne, 3] = GetRead(com).GetString(3);
                            feuille.Cells[ligne, 4] = GetRead(com).GetString(4);
                            feuille.Cells[ligne, 5] = GetRead(com).GetString(5);
                            feuille.Cells[ligne, 6] = GetRead(com).GetString(6);
                            feuille.Cells[ligne, 7] = GetRead(com).GetString(7);
                            feuille.Cells[ligne, 8] = GetRead(com).GetString(8);
                            feuille.Cells[ligne, 9] = GetRead(com).GetString(9);
                            ligne++;
                        }
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("erreur de connection :" + e.Message.ToString());
                    }
                    excel.DisplayAlerts = false;
                    Console.WriteLine("sauvegarde du fichier excel......");
                    Console.ReadKey();
                    classeur.Close(true);
                    Console.WriteLine("fermeture de excel....");
                    excel.Quit();
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
     
                    test = true;
     
                }
                catch (Exception e)
                {
                    Console.Write("erreur !!!!\n"+e.Message.ToString());
                    test = false;
                }
                return test;
            }
        }
    }
    Merci par avance

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2009
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2009
    Messages : 317
    Par défaut
    Plop, voici un petit exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    rangetemp.Interior.Color = System.Drawing.ColorTranslator.ToWin32(Color.Red);

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 20
    Par défaut
    Parfait!!!
    Je tournais autour du pot depuis longtemps et j'avais même pas essayé ça....

    pour rendre ca dynamique avec une itération j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     feuille.Cells[1, i].Interior.Color = XlRgbColor.rgbDarkGray;
    afin que selon la table requêtée ça s'adapte au résultat ...

    Merci encore, je poursuis mes explorations....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] changer la couleur d'un texte dans une cellule
    Par nobue dans le forum Conception
    Réponses: 6
    Dernier message: 24/11/2013, 18h34
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 18h37
  3. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 18h01
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 14h48
  5. reporter une cellule dans plusieurs feuilles excel
    Par tigdub1gal dans le forum Excel
    Réponses: 17
    Dernier message: 07/06/2007, 02h23

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