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 :

tracer un graphe sous excel à l'aide d'un code écrit en c#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut tracer un graphe sous excel à l'aide d'un code écrit en c#
    Bonjour à tous,
    je suis débutant en c# et excel , et je dois à partir d'un code écrit en c# sous visualstudio , générer un tableau pour tracer une courbe sous excel.la courbe à tracer est en fait une succession de fonctions affines f(x) = ax+b .
    Par exemple :
    pour x ds [0,3] tracer f(x) = 2x+1
    pour x ds [3,6] tracer f(x) = 3x-1
    pour x ds [6,9] tracer f(x) = x+4

    etc..
    Pouvez vous m'aider svp.
    Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Il existe sur dvpz.com un article décrivant le pilotage d'Excel : DOTNET : piloter OFFICE
    Il traite notamment de la création d'un graphe par programmation.
    Je te laisse le soin de le consulter.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut
    merci pour le lien
    j'ai tappé le code se trouvant à cette page , et malgré toutes les références que j 'ajoute pour communiquer avec Excel , j'ai toujours une erreur et la plus courante étant:
    "Le type ou le nom d'espace de noms 'Windows' n'existe pas dans la classe ou l'espace de noms 'System"
    malgré le fait que j'ajoute using System.Windows.Forms en début de fichier.
    Lorsque j 'ajoute System.Windows.Forms plutot en référence.J'ai beaucoup plus d'erreur et je comprends pas .
    merci d'avance

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Montre voir ton code, s'il te plait.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 3
    Par défaut
    voila mon code,

    using System;
    using System.Windows.Forms;
    using System.Collections.Generic;
    using System.Text;


    namespace teste
    {
    class Program
    {
    static void Main()
    {
    Application.Run(new Form1());
    }

    private void cmdTrace_click(object sender, System.EventArgs e)
    {
    //object for missing (or optional) arguments.
    object oMissing = System.Reflection.Missing.Value;
    //appel d'Excel et attribution des variables
    Excel.Application AppExcel = new Excel.ApplicationClass();
    Excel._Worksheet Feuille = AppExcel.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
    Excel._Worksheet Feuille = (Excel._Worksheet)Classeur.ActiveSheet;
    // Nom des séries
    Feuille.Cells[1, 1] = "X";
    Feuille.Cells[1, 2] = this.txtFormule.Text;
    Feuille.Cells[2, 1] = Convert.ToDouble(this.txtMini.Text);
    //création d'un tableau de 100 valeurs allant de min à max par pas fixe
    Feuille.get_Range("A2", "A2").get_Resize(101, oMissing).DataSeries(Excel.XlRowcol.xlColumns, Excel.XlDataSeriesType.xlDataSeriesLinear, Excel.XlDataSeriesDate.xlDay, ((Convert.ToDouble(this.txtMaxi.Text) - Convert.ToDouble(this.txtMini.Text)) / 100), oMissing, oMissing);
    string Machaine = "=" + txtFormule.Text;
    Feuille.get_Range("B2", "B2").get_Resize(101, oMissing).FormulaLocal = Machaine.Replace("X", "LC(-1)");

    //

    // tracé de la courbe
    Excel._Chart.Graphe =(Excel._Chart)classeur.Sheets.Add(classeur.Sheets[1],oMissing , 1, Excel.XlWBATemplate.xlWBATchart);
    Graphe.ChartType = Excel.XlchartType.xlXYScatterlinesNoMarkers;

    Graphe.SetSourceData(Feuille.get_Range ("A1", "A1").get_Resize(102, 2), Excel.XlRowCol.xlColumns);

    //récupération de la courbe dans le presse-papier

    Graphe.CopyPicture(Excel.XlPictureAppearance.xlScreen,Excel.XlCopyPictureFormat.xlBitmap, Excel.XlPictureAppearance.xlScreen);

    //récuperation du presse papier dans le picturebox
    IDataObject data = Clipboard.GetDataObject();
    Bitmap bmap;
    if (data.GetDataPresent (DataFormats.Bitmap));
    {
    bmap = (Bitmap) data.GetData(DataFormats.Bitmap);
    this.pictureBox1.Image = bmap;
    this.pictureBox1.SizeMode = PictureboxSizeMode.StretchImage;
    }

    //fermeture propre d' excel

    Classeur.close(false,oMissing,oMissing);
    MaPlage = null;
    Feuille = null;
    Classeur =null;
    AppExcel =null;
    }

    /*private void txtMini_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    char c = e.KeyChar;
    if (Char.IsControl(c) == false)
    if (Char.IsDigit(c) == false)
    e.Handled = true;
    }

    private void txtMaxi_KeyPress (object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
    char c = e.KeyChar;
    if (Char.IsControl(c) ==false)
    if (Char.IsDigit(c) == false)
    e.Handled = true;
    }*/


    }
    }


    et voilà les erreurs :

    ------ Début de la génération : Projet : teste, Configuration : Debug Any CPU ------
    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Csc.exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /defineEBUG;TRACE /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.Design.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /reference:obj\Debug\Interop.Excel.dll /reference:obj\Debug\Interop.Graph.dll /reference:obj\Debug\Interop.Microsoft.Office.Core.dll /debug+ /debug:full /optimize- /out:obj\Debug\teste.exe /target:exe Program.cs Properties\AssemblyInfo.cs
    C:\Documents and Settings\christian\Mes documents\Visual Studio 2005\Projects\teste\teste\Program.cs(2,14): erreur CS0234: Le type ou le nom d'espace de noms 'Windows' n'existe pas dans la classe ou l'espace de noms 'System' (une référence d'assembly est-elle manquante ?)

    Compilation terminée -- 1 erreurs, 0 avertissements
    ========== Génération : 0 a réussi ou est à jour, 1 a échoué, 0 a été ignoré ==========

    merci d'avance pour ton aide

Discussions similaires

  1. Tracer un graphe sous Excel depuis MATLAB
    Par sebastien06 dans le forum MATLAB
    Réponses: 5
    Dernier message: 20/03/2008, 17h52
  2. Graphe sous Excel
    Par Mabiche103 dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/06/2006, 12h21
  3. Graph sous Excel et series en trop!
    Par cfalcot dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/05/2006, 11h42
  4. [VBA-E]Sélectionner un graph sous Excel
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/04/2006, 14h54
  5. Composant permettant de faire des graphes sous Excel
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 25/10/2005, 22h13

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