Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Allgemein] -  C# vs Python
#18
Bitte zeige mir das obige Beispiel unter Nutzung von Excel COM Interop.

Zitat:Alles klar! Hier zeige ich dir nun ein kompaktes C#-Beispiel, das Excel COM Interop nutzt, um eine Excel-Datei zu öffnen, eine neue Zeile hinzuzufügen und zu speichern. Excel muss dabei installiert sein.

1️⃣ Voraussetzungen
  1. Visual Studio oder .NET Projekt
  2. COM-Verweis hinzufügen:
    • Rechtsklick auf Projekt → „Verweise hinzufügen“ → COM → „Microsoft Excel XX.X Object Library“
    • Oder NuGet-Paket:
      Code:
      Microsoft.Office.Interop.Excel

  3. Excel muss installiert sein

2️⃣ Beispielcode
Code:
using System;
using Excel = Microsoft.Office.Interop.Excel;
class Program
{
    static void Main()
    {
        string filePath = @"C:\Temp\Beispiel.xlsx";
        // Excel starten
        var excelApp = new Excel.Application();
        excelApp.Visible = false; // true, falls man Excel sehen möchte
        Excel.Workbook workbook;
        // Datei öffnen, oder neues Workbook erstellen
        if (System.IO.File.Exists(filePath))
        {
            workbook = excelApp.Workbooks.Open(filePath);
        }
        else
        {
            workbook = excelApp.Workbooks.Add();
        }
        Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets[1];
        // Letzte genutzte Zeile finden
        int lastRow = worksheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
        // Neue Zeile hinzufügen
        worksheet.Cells[lastRow + 1, 1].Value2 = "Neue Aufgabe";
        worksheet.Cells[lastRow + 1, 2].Value2 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        // Speichern und schließen
        workbook.SaveAs(filePath);
        workbook.Close();
        excelApp.Quit();
        // COM-Objekte freigeben
        System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
        Console.WriteLine("Neue Zeile erfolgreich hinzugefügt!");
    }
}

3️⃣ Erklärung
  • Code:
    excelApp.Visible = false
    → Excel läuft unsichtbar im Hintergrund
  • Code:
    SpecialCells(xlCellTypeLastCell)
    → findet die letzte belegte Zeile
  • Neue Aufgabe wird unter der letzten Zeile eingefügt
  • Datei wird gespeichert (
    Code:
    SaveAs
    ) und Excel beendet
  • COM-Objekte freigeben → sonst bleibt Excel-Prozess hängen

4️⃣ Vorteile COM Interop
  • Zugriff auf alle Excel-Funktionen (Formeln, Charts, Makros)
  • Einfach zu nutzen, wenn Excel bereits installiert
  • Ideal für kleine Automatisierungen, die Excel-Funktionalität nutzen

5️⃣ Nachteile
  • Nur Windows
  • Excel muss installiert sein
  • COM kann instabil sein, bei vielen Operationen → Excel-Prozess kann hängen bleiben

Wenn du willst, kann ich noch ein erweitertes COM Interop Beispiel zeigen, das alle Aufgaben aus einem Sheet ausliest, filtert und sortiert, ähnlich wie bei der EPPlus-Version, aber direkt mit Excel.
Willst du, dass ich das erstelle?
Zitieren Return to top


Nachrichten in diesem Thema
C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 3 Stunden
RE: C# vs Python - von Joopi - Vor 2 Stunden

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste