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 :

[C#]Propriétés Excel pilotées par C#


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 93
    Points : 64
    Points
    64
    Par défaut [C#]Propriétés Excel pilotées par C#
    Bonjour,
    Je développe une application qui doit formater un fichier Excel avant d'y introduire des données.
    Aucun problème pour l'ouverture ou pour y introduire des données.
    Mon problème est que je n'arrive pas à définir les propriétés de chaque colonne au formatage.
    Je peux juste leur donner une largeur avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuille.get_Range("A1", "A1").ColumnWidth = 6;
    Mais j'aimerais pouvoir définir les colonnes qui doivent recevoir du string et celles qui doivent recevoir de l'integer (en fait variant pour Excel).
    Idem pour certaines cellules.
    Pouvez-vous m'aider ?
    De plus, quelqu'un connaîtrait-il un livre qui traite en profondeur des échanges entre C# et Microsoft Office (Excel en l'occurence) ?
    ----------------------------------------
    Merci pour votre aide précieuse.
    Mictou

  2. #2
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    J'ai essayé, j'ai vu : pas convaincu !

    Je trouve que VSTO est un peu "beta-like"...
    De nombreux bug non-explicables, ...
    Pas mal pour de petits outils, mais vite désagréable lors de la création de plus grand projet... Un excellent avant-gout des possibilités d'interopérabilité avec MSOffice...

    J'attends avec impatiente la version 2007 du projet...
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par FremyCompany
    J'ai essayé, j'ai vu : pas convaincu !

    Je trouve que VSTO est un peu "beta-like"...
    De nombreux bug non-explicables, ...
    Pas mal pour de petits outils, mais vite désagréable lors de la création de plus grand projet... Un excellent avant-gout des possibilités d'interopérabilité avec MSOffice...
    Tu es sur que ce n'est pas toi qui a introduit les bugs plutot

    Car sérieusement, les VSTO sont très bien, pour de grand ou petit projets

    J'attends avec impatiente la version 2007 du projet...
    Mis à part le fait de supporter plus de produits MS, il n'y aura pas de plus grande améliorations révolutionnaires....

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 93
    Points : 64
    Points
    64
    Par défaut
    J'ai trouvé dans le fichier VBXL9 toute l'arborescence d'Excel. Et après quelques recherches j'ai trouvé la propriété numberFormat au sujet de laquelle on dit ceci:
    Le code de format est une chaîne identique au contenu de la zone Type de la boîte de dialogue Format de cellule. La fonction Format utilise des chaînes de code de format différentes de celles auxquelles ont recours les propriétés NumberFormat et NumberFormatLocal.
    Fort bien, voilà qui est explicite mais je n'ai trouvé nul part les formats de chaînes à utiliser.
    Si j'essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    oRange = Feuille.get_Range("A1", "A1");
    oRange.NumberFormat = "Standard";
    Cela passe sans problème (mais il faut dire que c'est la valeur par défaut)
    mais si j'essaye ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    oRange = Feuille.get_Range("A1", "A1");
    oRange.NumberFormat = "Texte";
    Alors là, le compilateur n'est plus du tout d'accord ...
    ----------------------------------------
    Merci pour votre aide précieuse.
    Mictou

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    pour le format texte c'est @ ..:


  6. #6
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par Morpheus
    Tu es sur que ce n'est pas toi qui a introduit les bugs plutot

    Car sérieusement, les VSTO sont très bien, pour de grand ou petit projets



    Mis à part le fait de supporter plus de produits MS, il n'y aura pas de plus grande améliorations révolutionnaires....
    Lol, non je ne crois pas, je ne faissait rien qu'ajouter un item au menu d'office, et l'action qu'il était censé exécutée ne se lancait que la première fois... incompréhensible... surtout qu'en mode Debug je ne rencontrais pas le bug...

    Mais peut-être que mon office est buggé
    Fremy
    Pour vos développements Web et une navigation agréable, le tout gratuit :
    1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
    2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 93
    Points : 64
    Points
    64
    Par défaut
    Merci à bbil. Cela fonctionne.
    Pour ceux que cela intéresse voici donc une partie de mon code qui permet un formatage de Excel à partir de C#.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    AppExcel = new ApplicationClass();
    Classeur = AppExcel.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
    Feuille = (_Worksheet)Classeur.ActiveSheet;
    //Mise en forme des colonnes
    Feuille.get_Range("A1", "A1").ColumnWidth = 6;
    oRange = Feuille.get_Range("A1", "A1");
    //Pour accepter des données numériques (variants)
    oRange.NumberFormat = "Standard";
    Feuille.get_Range("B1", "B1").ColumnWidth = 32;
    oRange = Feuille.get_Range("B1", "B1");
    //Pour accepter les données de type string
    oRange.NumberFormat = "@";
    ----------------------------------------
    Merci pour votre aide précieuse.
    Mictou

  8. #8
    Membre chevronné
    Avatar de stailer
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mars 2003
    Messages
    1 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 136
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    3
    Par défaut
    Je l'ai déjà dit dans un autre post :

    quand tu sais pas faire un truc d'Excel avec C# par les vsto : passe par une macro !

    pour ton exemple :
    1 ouvre excel, tape du texte dans une cellule et la tu crées une nouvelle macro.
    2 formate ta cellule en format texte
    3 arrête l'enregistrement de la macro et va voir son code, ou tu pourras trouver normalement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Selection.NumberFormat = "@"
    Il faudra bien sur convertir en C# mais c'est jamais bien compliqué. Amuse toi bien
    .o0o__St@iLeR__oOo.

    Lead Developer

    ASP.NET MVC - MCP/MCSD ASP.NET
    PHP Zend Framework / PhalconPHP
    Cordova/Xamarin IOS/Android
    Kendo UI - ExtJS - JQwidgets
    SQL Server / MySQL

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/04/2015, 12h29
  2. Propriété fichiers MP3 par VBA Excel
    Par AIFOL dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/01/2008, 22h46
  3. Réponses: 1
    Dernier message: 15/11/2007, 13h51
  4. [Excel] - QueryTable dans Excel Piloté par Access
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 23/02/2007, 13h28
  5. Propriétés et fonctions par défaut
    Par Arrown dans le forum Langage
    Réponses: 3
    Dernier message: 21/06/2005, 16h38

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