Vor 3 Stunden
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
- Visual Studio oder .NET Projekt
- 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
- 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
→ Excel läuft unsichtbar im HintergrundCode:excelApp.Visible = false
→ findet die letzte belegte ZeileCode:SpecialCells(xlCellTypeLastCell)
- Neue Aufgabe wird unter der letzten Zeile eingefügt
- Datei wird gespeichert (
) und Excel beendetCode:SaveAs
- 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?

