Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
[Allgemein] -  C# vs Python
#19
Ja, bitte, zeige mir auch dieses Beispiel. Ich möchte nur Beispiele sehen, die Excel haben. Danke!

Zitat:Perfekt! Dann bauen wir ein erweitertes C# COM Interop Beispiel, das eine Excel-Datei komplett ausliest, filtert und sortiert, ähnlich wie eine kleine Datenbank, und anschließend neue Aufgaben einfügt. Excel muss dafür installiert sein.

1️⃣ Ziel des Beispiels
  • Excel-Datei enthält Aufgaben:
    • Spalte A: Aufgabe
    • Spalte B: Datum
    • Spalte C: Status (
      Code:
      Offen
      /
      Code:
      Erledigt
      )
  • Programm:
    1. Liest alle Aufgaben ein
    2. Zeigt nur offene Aufgaben in der Konsole
    3. Fügt eine neue Aufgabe hinzu
    4. Sortiert die Aufgaben nach Datum
    5. Speichert die Datei

2️⃣ Beispielcode
Code:
using System;
using Excel = Microsoft.Office.Interop.Excel;
class Program
{
    static void Main()
    {
        string filePath = @"C:\Temp\Aufgaben.xlsx";
        var excelApp = new Excel.Application();
        excelApp.Visible = false;
        Excel.Workbook workbook;
        if (System.IO.File.Exists(filePath))
        {
            workbook = excelApp.Workbooks.Open(filePath);
        }
        else
        {
            workbook = excelApp.Workbooks.Add();
            Excel.Worksheet ws = (Excel.Worksheet)workbook.Sheets[1];
            ws.Cells[1, 1].Value2 = "Aufgabe";
            ws.Cells[1, 2].Value2 = "Datum";
            ws.Cells[1, 3].Value2 = "Status";
            workbook.SaveAs(filePath);
        }
        Excel.Worksheet sheet = (Excel.Worksheet)workbook.Sheets[1];
        // Letzte genutzte Zeile
        int lastRow = sheet.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row;
        Console.WriteLine("Offene Aufgaben:");
        for (int row = 2; row <= lastRow; row++)
        {
            string status = sheet.Cells[row, 3].Value2?.ToString() ?? "";
            if (status != "Erledigt")
            {
                string task = sheet.Cells[row, 1].Value2?.ToString() ?? "";
                string date = sheet.Cells[row, 2].Value2?.ToString() ?? "";
                Console.WriteLine($"- {task} (Datum: {date})");
            }
        }
        // Neue Aufgabe hinzufügen
        sheet.Cells[lastRow + 1, 1].Value2 = "Neue COM Aufgabe";
        sheet.Cells[lastRow + 1, 2].Value2 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        sheet.Cells[lastRow + 1, 3].Value2 = "Offen";
        // Sortieren nach Datum (Spalte B)
        Excel.Range sortRange = sheet.Range[sheet.Cells[2, 1], sheet.Cells[lastRow + 1, 3]];
        sortRange.Sort(
            Key1: sheet.Cells[2, 2],
            Order1: Excel.XlSortOrder.xlAscending,
            Header: Excel.XlYesNoGuess.xlNo
        );
        // Speichern und schließen
        workbook.Save();
        workbook.Close();
        excelApp.Quit();
        // COM-Objekte freigeben
        System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
        Console.WriteLine("Neue Aufgabe hinzugefügt und Aufgaben sortiert!");
    }
}

3️⃣ Erklärung
  • Offene Aufgaben filtern → Status prüfen (
    Code:
    Offen
    /
    Code:
    Erledigt
    )
  • Neue Aufgabe hinzufügen → mit aktuellem Timestamp
  • Sortieren nach Datum → Range von Zeile 2 bis letzte Zeile
  • COM-Objekte freigeben → Excel-Prozess wird korrekt beendet
  • Konsole zeigt alle offenen Aufgaben

4️⃣ Vorteile COM Interop für so ein Beispiel
  • Excel vollständig nutzbar → Formeln, Sortierung, Filter
  • Visuell sofort überprüfbar, da Excel-Datei bearbeitet wird
  • Perfekt für kleine Automatisierungs-Tools, die Excel als „Datenbank“ nutzen

Wenn du willst, kann ich als Nächstes noch ein komplettes Mini-Task-Manager-Framework in C# mit Excel COM Interop und GUI bauen, das automatisch Aufgaben anzeigt, abhaken lässt und live neue Aufgaben einfügt – ähnlich wie dein Perl/Python-Framework, aber komplett in C#.
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