Announcement

Collapse
No announcement yet.

C# Form Excel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C# Form Excel

    Hey Leude...

    ich habe eine Problem. Mache gerade ne Form anwendung in der man einige Sachen machen kann. Eine möglichkeit ist eine Excel-Datei aufzurufen.

    Mein Problem ist das ich nicht weiß wie ich

    Excel aufrufe in c#
    in Excel schreibe durch c#

    naja paar andere sachen werden sich sicherlich dadurch klären!

    Hab schon einiges gelsen aber bei mir funzt

    using Excel = Microsoft.Office.Interop.Excel;

    Nicht.

    hoffe könnt helfen

    Code ist immer erwünscht lerne kann ich mir so am besten merken

    thx

    Smoke

  • #2
    Hier findest du Beschreibung und Codebeispiele sowie Links zu weiteren Beispielen

    bye,
    Helmut

    Comment


    • #3
      Hallo Smoke,

      zuerst mußt du den namespace mittels:
      Code:
      using System.Runtime.InteropServices;
      hinzufügen.
      Dann mußt du im Projektmappenexplorer deines Projekts unter "Verweise" mit der rechten Maustaste "Verweis hinzufügen" und anschleißend den "COM" Reiter auswählen. Da mußt du nach einem Eintrag suchen der so oder so ähnlich heißt
      "Microsoft Excel 14.0 Object Libary". Ich arbeite mit dem .Net 4.0 Framework, beim 3.5 wars glaub ich version 12.0.
      Anschließend noch den Namespace einbinden:
      Code:
      using Bearbeiten=Microsoft.Office.Interop.Excel;
      Das "Bearbeiten" ist ein Alias für einen Namespace siehe
      http://msdn.microsoft.com/de-de/library/sf0df423%28v=VS.80%29.aspx

      Habe dann mal ein kleines Beispiel programmiert um für dich einen Einstieg zu haben:

      Code:
             Bearbeiten.Application app = new Bearbeiten.Application(); 
                         
                      Bearbeiten.Workbook work = app.Workbooks.Add(Type.Missing);   
                      app.Visible = true;
                  
                      //Anwendung starten
                      app.ActiveWorkbook.Activate();
      
                      //etwas in Zelle C2 schreiben
                      app.Cells[2, 3] = "TEST 1";
                      
                      //Arbeitsblätter abrufen
                      Bearbeiten.Sheets sh = work.Worksheets;
      
                      //auswählen welches Arbeitsblatt
                      Bearbeiten.Worksheet shauswahl = (Bearbeiten.Worksheet)sh[1];
      
                      //Breich im Arbeitsblatt auswählen
                      Bearbeiten.Range range = (Bearbeiten.Range)shauswahl.get_Range("B3", "C4");
      
                      //in den Bereich was reinschreiben
                      range.Value2 = "TEST 2";
                      
                      //Bereich C2 auswählen
                      range = (Bearbeiten.Range)shauswahl.get_Range("C2");
      
                      //inhalt auslesen
                      string auslesen = range.Value2;
      
                      //Messagebox ist versteckt hinter excel Anwendung
                      MessageBox.Show(auslesen);
      Das ganze in z.B. das Click Event eines Buttons.
      Viel Spaß

      Matthias

      Comment


      • #4
        hmm.. Danke für den Code

        nur sagt er mir immernoch das Problem an. Du hattest geschrieben das die Version 14 oder 12 ist. Bei mir ist sie aber nur 10 und irgwie kennt er

        using Bearbeiten=Microsoft.Office.Interop.Excel;

        nicht!

        Comment


        • #5
          Ich denke dir Fehlen die entsprechenden PIA's zu deiner Office-Version.

          Comment


          • #6
            hmm... das kann sein

            Der Typ- oder Namespacename "Interop" ist im Namespace "Microsoft.Office" nicht vorhanden. (Fehlt ein Assemblyverweis?)

            das ist der Fehler ... muss ich mal Zuhause ausprob! thx

            Comment


            • #7
              An dieser Stelle muss ich wie immer OpenXML in den Raum stellen. Damit lassen sich sämtliche Office Formate bearbeiten, zudem kann das im Fall von ASP.NET z.B. auch serverseitig passieren. Für OpenXML benötigt man ausserdem auch kein installiertes Office Paket auf dem Rechner auf dem das Programm ausgeführt wird.
              Allerdings funktionierne OpenXML Dokumente soweit ich weiss erst ab Office 2003. Evtl. ist das ja auch eine Option für Dich.

              Comment


              • #8
                aha und wie wird das dan angewand verknüpft mit c# oder alles eigenständig in OpenXml kenne mich damit erlichgesagt nicht aus.

                Ich kann ja mal mein Programm beschreiben.

                Es ist sozusagen für Zocker ein Tool welches bestimmte sachen ausrechnet!
                Z.B habe ich das Ziel bis Ostern lvl 67 zu werden (z.B)
                Dann trage ich die ganzen angaben wie Datum Tagliche Zeit, Freitage ein und das Programm plant. Jedes mal wenn der User zockt kann er hinterher eintragen wieviel er geschafft hat. Alles zusammen wird in einer großen Excel datei angezeigt wo der User schauen kann ob er im rahmen ist und sein lvl schafft oder nicht! kann ich alldies auch auch in Openxml angeben?

                Schreibe das halt immoment als WinForm und brauche jetzt diese Form des Excel um es dem user anschaulich zu machen!

                Comment


                • #9
                  versuch mal

                  Code:
                  using Bearbeiten = Excel;
                  für die "Excel 10 Object Library".

                  Comment


                  • #10
                    ne sry dann erkennt eh mehrere sachen aus deinem code nicht!

                    Comment


                    • #11
                      es kann sein das du

                      [highlight=c#]Bearbeiten.Application app = new Bearbeiten.Application();
                      [/highlight]

                      abändern mußt in

                      [highlight=c#]Bearbeiten.ApplicationClass app = new Bearbeiten.ApplicationClass();
                      [/highlight]

                      Comment

                      Working...
                      X