Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Excel-Objekt freigeben (C#) | Verweilende Excel-Prozesse mit IronXL beenden

Freigeben von Excel-Objekten in C#: Verhindern Sie lingernde Excel-Prozesse mit IronXL: Bild 1 - Freigeben von Excel-Objekten in C#: Zwei Methoden im Vergleich

Die Arbeit mit Microsoft Excel-Dateien in C#-Anwendungen führt oft zu einem frustrierenden Problem: Excel-Prozesse, die sich weigern zu schließen. Möglicherweise entdecken Sie mehrere Instanzen von EXCEL.EXE, die sich im Task-Manager ansammeln und Speicher verbrauchen, lange nachdem Ihr Code ausgeführt wurde. Dieser Leitfaden erklärt, warum dies bei herkömmlichem Excel-Interop passiert, und zeigt, wie IronXL diese COM-Objekt-Probleme vollständig beseitigt -- und Sie vor komplexem Bereinigungscode und Speicherlecks in der Produktion bewahrt.

Die Ursache liegt in der Interaktion des .NET-Frameworks mit Microsoft Office durch COM-Referenzen. Wenn Sie Code mit Microsoft.Office.Interop.Excel schreiben, erzeugt jedes Excel-Anwendungsobjekt, Arbeitsbuch und Arbeitsblatt COM-Objekte, die eine explizite Bereinigung erfordern. Schon eine fehlende Freigabe-- oder die Verwendung von Mustern mit zwei Punkten wie app.Workbooks.Open() -- hinterlässt verwaiste Referenzen, die das Beenden des Excel-Prozesses verhindern.

Starten Sie jetzt mit IronXL.
green arrow pointer

Warum bleiben Excel-Prozesse im Task-Manager nach dem Schließen erhalten?

Die Excel-Anwendung wird nicht beendet, weil die Zähler für COM-Objektreferenzen nicht ordnungsgemäß dekrementiert werden. Jedes Mal, wenn Ihr Code auf eine Excel-Anwendung, ein Arbeitsbuch oder ein Arbeitsblatt zugreift, erstellt die Laufzeit ein Laufzeit-aufrufbares Wrapper-Objekt (RCW), das eine Referenzzählung für das zugrunde liegende COM-Objekt hält. Der .NET-Garbage-Collector kann diese Interop-Objekte nicht freigeben, bis jede Referenz explizit mit Marshal.ReleaseComObject befreit wurde.

Häufige Fehler, die lingernde Prozesse verursachen, umfassen:

  • Verwenden von zwei Punkten in Eigentumsketten wie app.Workbooks.Open() (was versteckte temporäre Objekte erzeugt)
  • Iterieren mit einer foreach-Schleife über COM-Kollektionen (was unveröffentlichte Aufzähler erzeugt)
  • Vergessen, ein Quit() auf das Excel-Anwendungsobjekt zu rufen
  • Ausnahmebehandlungen ohne Bereinigung in einem finally-Block

In früheren Versionen von Microsoft Office (2000-2003) würde das Nicht-Freigeben von Office-API-Objekten dazu führen, dass das Haupt-Excel-Fenster unbestimmt hängt. Während späteren Versionen gnädiger sind, sammelt sich der Excel-Prozess immer noch im Task-Manager, was Speicherlecks und mögliche Probleme mit gesperrten Dateien in Ihren Excel-Tabellenkalkulations-Dateien verursacht.

Das Problem wird besonders schmerzhaft in serverseitigen oder geplanten Anwendungen, wo sich Prozesse im Laufe der Zeit ansammeln, bis der Server keinen Speicher mehr hat. Zu verstehen, warum dies passiert, ist der erste Schritt zur Wahl des richtigen Werkzeugs für die Aufgabe.

Was passiert in der COM-Schicht?

Jeder Zugriff auf eine Eigenschaft eines Excel-COM-Objekts kann einen neuen RCW erzeugen. Wenn Sie worksheet.Range["A1"].Value schreiben, werden zwei separate COM-Objekte erstellt -- eines für Range und eines implizit durch den Zugriff mit zwei Punkten. Der Garbage Collector kann diese schließlich aufräumen, aber ohne Garantie für das Timing. In Anwendungen mit hohem Durchsatz kann der Rückstau schneller wachsen als die Sammlung erfolgt.

Windows zählt COM-Referenzen intern. Bis dieser Zähler Null erreicht, bleibt der zugrunde liegende Prozess (EXCEL.EXE) erhalten. GC.Collect()- und GC.WaitForPendingFinalizers()-Aufrufe erzwingen einen Sammlungslauf, aber dieser Ansatz hat Leistungskosten und ist keine langfristige Lösung für Produktivcode.

Warum verursacht das Muster mit zwei Punkten Probleme?

Das Muster mit zwei Punkten (app.Workbooks.Open(path)) ist idiomatisch in C#, aber in COM-Interop-Kontexten erzeugt es ein nicht referenziertes Zwischenobjekt. Das Workbooks-Sammlungsobjekt wird erstellt, um Open zu rufen, und dann sofort verwaist, weil Ihr Code keinen Bezug dazu hält. Der Garbage Collector hat keinen vorhersehbaren Zeitplan zur Finalisierung dieser Objekte, sodass EXCEL.EXE offen bleibt.

Der einzige sichere Ansatz mit Interop besteht darin, jedes Zwischenobjekt in einer benannten Variablen zu speichern und jedes in umgekehrter Reihenfolge der Erstellung explizit freizugeben.

Wie geben Sie Excel-Interop-Objekte korrekt frei?

Der traditionelle Ansatz erfordert eine akribische Verfolgung jedes erstellten COM-Objekts. Sie müssen doppelte Punkte vermeiden, jedes Zwischenobjekt in einer lokalen Variable speichern und sie in umgekehrter Reihenfolge freigeben. Der folgende Code demonstriert das ausführliche Bereinigungsmuster, das typischerweise in Stack Overflow-Antworten und Microsoft-Dokumentationen gefunden wird:

using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

// Verbose Interop cleanup pattern
Excel.Application excelApp = new Excel.Application();
Excel.Workbooks workbooks = excelApp.Workbooks;
Excel.Workbook workbook = workbooks.Open("report.xlsx");
Excel.Sheets sheets = workbook.Sheets;
Excel.Worksheet worksheet = (Excel.Worksheet)sheets[1];

// Work with data
worksheet.Cells[1, 1] = "Updated Value";

// Cleanup -- release EVERY COM object in reverse order
workbook.Close(false);
excelApp.Quit();

Marshal.ReleaseComObject(worksheet);
Marshal.ReleaseComObject(sheets);
Marshal.ReleaseComObject(workbook);
Marshal.ReleaseComObject(workbooks);
Marshal.ReleaseComObject(excelApp);

GC.Collect();
GC.WaitForPendingFinalizers();
using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

// Verbose Interop cleanup pattern
Excel.Application excelApp = new Excel.Application();
Excel.Workbooks workbooks = excelApp.Workbooks;
Excel.Workbook workbook = workbooks.Open("report.xlsx");
Excel.Sheets sheets = workbook.Sheets;
Excel.Worksheet worksheet = (Excel.Worksheet)sheets[1];

// Work with data
worksheet.Cells[1, 1] = "Updated Value";

// Cleanup -- release EVERY COM object in reverse order
workbook.Close(false);
excelApp.Quit();

Marshal.ReleaseComObject(worksheet);
Marshal.ReleaseComObject(sheets);
Marshal.ReleaseComObject(workbook);
Marshal.ReleaseComObject(workbooks);
Marshal.ReleaseComObject(excelApp);

GC.Collect();
GC.WaitForPendingFinalizers();
$vbLabelText   $csharpLabel

Dieser Code speichert jedes Excel-Objekt separat, um eine ordnungsgemäße Bereinigung sicherzustellen. Die GC.Collect()- und GC.WaitForPendingFinalizers()-Aufrufe am Ende erzwingen die Müllsammlung. Einige Entwickler umschließen alles in einem try/finally-Block, um die Bereinigung selbst bei Ausnahmen zu garantieren.

Für extreme Fälle, in denen Standardbereinigung fehlschlägt, greifen einige Teams auf ansatz-prozessbeeinträchtigende Ansätze mit Windows Job Objects zurück. Dies erfordert P/Invoke-Deklarationen für CreateJobObject, SetInformationJobObject und AssignProcessToJobObject. Obwohl dies als letztes Mittel funktioniert, behandelt es Symptome anstelle eines zugrunde liegenden Designproblems.

Wie installieren Sie eine COM-freie Excel-Bibliothek in C#?

IronXL verfolgt einen grundlegend anderen Ansatz für Excel-Dateioperationen. Anstatt Microsoft Office COM-Objekte zu umhüllen, liest und schreibt IronXL Excel-Dateiformate direkt mit dem eigenen Parser und Renderer. Das bedeutet keine COM-Referenzen, keine Office-Interop-Abhängigkeiten und keine lingernden Prozesse. Sie benötigen nicht einmal Microsoft Excel auf dem Computer.

Installieren Sie IronXL über die NuGet-Paket-Manager-Konsole in Visual Studio:

Install-Package IronXl.Excel
Install-Package IronXl.Excel
SHELL

Oder verwenden Sie die .NET-CLI:

dotnet add package IronXl.Excel
dotnet add package IronXl.Excel
SHELL

Nach der Installation fügen Sie die using IronXL;-Direktive in Ihrer Datei hinzu. Ihr Projekt hat jetzt direkten, nativen Zugriff auf Excel-Dateioperationen ohne jegliche Office-Abhängigkeit. IronXL zielt auf .NET 8, .NET 9, .NET 10, .NET Framework 4.6.2+ ab und läuft auf Windows, Linux, macOS, Docker und Azure.

Welche NuGet-Pakete sind erforderlich?

Nur ein einziges NuGet-Paket ist erforderlich: IronXl.Excel. Es hat keine Abhängigkeit von Microsoft Office, Office Interop-Assemblies oder jeglicher COM-Registrierung. Dies macht das Deployment drastisch einfacher – Sie können Ihre Anwendung als eigenständige ausführbare Datei veröffentlichen und es wird auf jedem Server ohne installiertes Office laufen.

Für Projekte, die auch PDF-Erstellung benötigen, integriert IronPDF mit IronXL, um Excel-Daten ohne Excel-Automatisierung direkt in PDF zu exportieren.

Wie lesen Sie Excel-Dateien ohne COM-Objekte?

Der folgende Code zeigt das Lesen einer Excel-Datei mit IronXL. Beachten Sie, dass kein Bereinigungscode erforderlich ist:

using IronXL;

// Load and read Excel files without COM objects
WorkBook workBook = WorkBook.Load("report.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Access cell values directly
string cellValue = workSheet["A1"].StringValue;
decimal columnSum = workSheet["B2:B10"].Sum();

// Nein cleanup required -- workBook is a standard .NET object
Console.WriteLine($"Cell A1: {cellValue}");
Console.WriteLine($"Sum B2:B10: {columnSum}");
using IronXL;

// Load and read Excel files without COM objects
WorkBook workBook = WorkBook.Load("report.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Access cell values directly
string cellValue = workSheet["A1"].StringValue;
decimal columnSum = workSheet["B2:B10"].Sum();

// Nein cleanup required -- workBook is a standard .NET object
Console.WriteLine($"Cell A1: {cellValue}");
Console.WriteLine($"Sum B2:B10: {columnSum}");
$vbLabelText   $csharpLabel

Konsolenausgabe

Freigeben von Excel-Objekten in C#: Verhindern Sie lingernde Excel-Prozesse mit IronXL: Bild 3 - Ausgabe IronXL beim Lesen einer Eingabe-Excel-Datei

IronXL behandelt Excel-Objekte als native .NET-Typen. Wenn die workBook-Variable außer Reichweite gerät, übernimmt die Standard-.NET-Müllsammlung die Speicherbereinigung. Es gibt keine Neintwendigkeit, COM-Referenzen zu verfolgen, Marshal.ReleaseComObject zu rufen oder Müllsammelzyklen zu erzwingen.

Sie können auch using-Blöcke mit IronXL-Arbeitsmappen für deterministische Entsorgung verwenden, obwohl es nicht erforderlich ist, Prozesslecks zu verhindern – dies ist einfach eine Frage der guten .NET-Ressourcenverwaltung.

Wie greifen Sie auf mehrere Arbeitsblätter zu?

Der Zugriff auf mehrere Arbeitsblätter in IronXL ist so direkt wie die Arbeit mit jeder .NET-Sammlung:

using IronXL;

WorkBook workBook = WorkBook.Load("multi-sheet-report.xlsx");

// Iterate all worksheets
foreach (WorkSheet sheet in workBook.WorkSheets)
{
    string sheetName = sheet.Name;
    int rowCount = sheet.RowCount;
    Console.WriteLine($"Sheet '{sheetName}' has {rowCount} rows");
}

// Access a specific sheet by name
WorkSheet salesSheet = workBook["Sales"];
decimal totalRevenue = salesSheet["C2:C100"].Sum();
Console.WriteLine($"Total Revenue: {totalRevenue:C}");
using IronXL;

WorkBook workBook = WorkBook.Load("multi-sheet-report.xlsx");

// Iterate all worksheets
foreach (WorkSheet sheet in workBook.WorkSheets)
{
    string sheetName = sheet.Name;
    int rowCount = sheet.RowCount;
    Console.WriteLine($"Sheet '{sheetName}' has {rowCount} rows");
}

// Access a specific sheet by name
WorkSheet salesSheet = workBook["Sales"];
decimal totalRevenue = salesSheet["C2:C100"].Sum();
Console.WriteLine($"Total Revenue: {totalRevenue:C}");
$vbLabelText   $csharpLabel

Keine COM-Iterationseinschränkungen, keine versteckten temporären Objekte und keine Bereinigung erforderlich. Die API von IronXL folgt durchweg standardmäßigen .NET-Sammlungsmustern.

Wie erstellen Sie eine neue Excel-Datei ohne Interop?

Das Erstellen von Excel-Dateien funktioniert mit denselben unkomplizierten Methodenmustern. Der folgende Code zeigt, wie ein neues Arbeitsbuch erstellt, strukturierte Daten hinzugefügt, grundlegende Formatierungen angewendet und gespeichert werden:

using IronXL;

// Create a new Excel spreadsheet in XLSX format
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Sales Data");

// Write headers
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Units Sold";
workSheet["C1"].Value = "Revenue";

// Write data rows
workSheet["A2"].Value = "Widget Alpha";
workSheet["B2"].Value = 450;
workSheet["C2"].Value = 22500;

workSheet["A3"].Value = "Widget Beta";
workSheet["B3"].Value = 310;
workSheet["C3"].Value = 15500;

// Add a formula
workSheet["C4"].Formula = "=SUM(C2:C3)";

// Save the Excel file
workBook.SaveAs("sales_report.xlsx");
Console.WriteLine("Spreadsheet saved successfully.");
using IronXL;

// Create a new Excel spreadsheet in XLSX format
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet workSheet = workBook.CreateWorkSheet("Sales Data");

// Write headers
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Units Sold";
workSheet["C1"].Value = "Revenue";

// Write data rows
workSheet["A2"].Value = "Widget Alpha";
workSheet["B2"].Value = 450;
workSheet["C2"].Value = 22500;

workSheet["A3"].Value = "Widget Beta";
workSheet["B3"].Value = 310;
workSheet["C3"].Value = 15500;

// Add a formula
workSheet["C4"].Formula = "=SUM(C2:C3)";

// Save the Excel file
workBook.SaveAs("sales_report.xlsx");
Console.WriteLine("Spreadsheet saved successfully.");
$vbLabelText   $csharpLabel

Ausgabe

Freigeben von Excel-Objekten in C#: Verhindern Sie lingernde Excel-Prozesse mit IronXL: Bild 4 - Excel-Datei ohne Interop erstellt

Dieser Ansatz beseitigt die Komplexität der Verwaltung eines Excel-Anwendungsobjekts, der Handhabung von Warnungen zu nicht gespeicherten Änderungen oder der Sicherstellung, dass der Hauptthread ein STA-Apartmentmodell verwendet. IronXL vereinfacht den Zugriff auf Tabellenkalkulationsfunktionen ohne das Ballast von Office-Add-In-Abhängigkeiten oder Interop-Assembly-Registrierung.

Für Szenarien, die komplexere Operationen erfordern, bietet IronXL Methoden für Formelbewertung, Zellstilierung und Mehrblatt-Arbeitsmappen. Sie können Code schreiben, der Daten in Excel-Arbeitsblättern manipuliert, Formatierungen anwendet und in mehreren Dateiformaten exportiert – alles ohne sich um das Lebenszyklusmanagement von COM-Objekten kümmern zu müssen.

Was sind die wichtigsten Unterschiede zwischen Excel-Interop und einer direkten Bibliothek?

Die folgende Tabelle fasst die wichtigsten Unterschiede zwischen den beiden Ansätzen zusammen:

Vergleich von Excel-Interop vs. IronXL für C#-Anwendungen
Fähigkeit Excel-Interop IronXL
Microsoft Office erforderlich Ja Nein
COM-Objekte bereinigen Manuell (jedes Objekt) Automatisch (.NET GC)
Risiko lingernder EXCEL.EXE Hoch Keine
Funktioniert in Serverumgebungen Begrenzt (STA-Thread erforderlich) Ja (alle Umgebungen)
Docker- / Linux-Unterstützung Nein Ja
Unterstützte Dateiformate XLS, XLSX (über Office) XLS, XLSX, CSV, TSV, JSON
Threadsicherheit Nur STA Multithreaded
Codekomplexität (Grundlegendes Lesen) Hoch (viele Freigabeaufrufe) Niedrig (3-5 Zeilen)

Freigeben von Excel-Objekten in C#: Verhindern Sie lingernde Excel-Prozesse mit IronXL: Bild 2 - Interop- vs. IronXL-Vergleichstabelle

IronXL unterstützt auch das Lesen von CSV-Dateien, Exportieren von Daten in CSV, Arbeiten mit Excel-Diagrammen und Anwenden von bedingter Formatierung. Diese Funktionen sind alle verfügbar, ohne dass eine Office-Abhängigkeit erforderlich ist, was IronXL sowohl für Desktop- als auch für serverseitige Anwendungen geeignet macht.

Für weitere Details zu fortgeschrittenen Szenarien siehe die IronXL-Dokumentation und die IronXL-API-Referenz. Sie können auch die IronXL-Beispielgalerie erkunden, um einsatzbereite Codebeispiele für Dutzende von gängigen Excel-Automatisierungsaufgaben zu finden.

Wie steht es mit Excel-Formeln und Datenvalidierung?

IronXL unterstützt das Lesen und Schreiben von Excel-Formeln nativ. Sie können die Formula-Eigenschaft einer Zelle einstellen und IronXL wird sowohl die Formel in der Datei speichern als auch auswerten. Für Datenvalidierungsregeln unterstützt IronXL Dropdown-Listen, Zahlenbereichsbeschränkungen und Datumvalidierungen – alles, ohne dass Excel die Berechnung ausführen muss.

Die Bibliothek verwaltet auch Excel-Kennwortschutz, zusammengeführte Zellen und Excel-Freeze-Pane-Konfigurationen. Siehe die IronXL-Tutorials für schrittweise Anleitungen zu jeder Funktion.

Wie migrieren Sie von Excel-Interop zu einer nativen .NET-Bibliothek?

Das Migrieren einer bestehenden auf Interop basierenden Codebasis zu IronXL umfasst typischerweise vier Schritte:

  1. Entfernen Sie die Microsoft.Office.Interop.Excel-NuGet-Referenz und die COM-Registrierung
  2. Installieren Sie IronXl.Excel über NuGet
  3. Ersetzen Sie die Interop-Objekterstellung durch IronXL-Äquivalente (WorkBook.Load, WorkBook.Create)
  4. Löschen Sie alle Marshal.ReleaseComObject-Aufrufe und GC.Collect-Muster

Die meisten Eigenschaftsnamen sind intuitiv zuzuordnen: worksheet.Cells[row, col] wird zu workSheet[$"{col}{row}"].Value und workbook.SaveAs(path) bleibt nahezu identisch. Der IronXL-Migrationsleitfaden behandelt gängige Konvertierungsmuster.

Ein Bereich, auf den man achten sollte, ist das Threading. Interop erfordert STA-Threads, was bestimmte Thread-Pool-Konfigurationen in ASP.NET erzwingt. Nach dem Wechsel zu IronXL können Sie jegliche [STAThread]-Attribute und Thread-Apartment-Einstellungen entfernen — IronXL ist von Haus aus Thread-sicher.

Für großangelegte Migrationen über viele Dateien hinweg zeigen die IronXL-Batchverarbeitungsbeispiele, wie Hunderte von Excel-Dateien effizient mit parallelen Schleifen und asynchronen Mustern verarbeitet werden.

Was sind Ihre nächsten Schritte?

Das Problem der COM-Objektbereinigung in Excel-Interop hat .NET-Entwickler seit Jahren frustriert. Jedes Zwischenobjekt zu verfolgen, sie in der richtigen Reihenfolge freizugeben und Ausnahmen zu behandeln, ohne Referenzen zu lecken, fügt erheblich Komplexität zu what straightforward Tabellenkalkulationsoperationen sein sollten.

IronXL bietet einen klareren Weg nach vorn. Durch den direkten Betrieb auf Excel-Dateiformaten — unabhängig von Microsoft Office — beseitigt es COM-Objekt-Probleme an ihrer Quelle. Ob Sie bestehende Dateien lesen, neue erstellen oder große Stapel verarbeiten, IronXL verarbeitet Excel-Tabellenkalkulationsoperationen mit der Einfachheit, die moderne .NET-Entwicklung erfordert.

Um loszulegen:

Zum Vergleich mit anderen Excel-Bibliotheken im .NET-Ökosystem, siehe die Microsoft-Dokumentation zu Excel-Interop, das EPPlus-Bibliotheks-GitHub-Repository und das ClosedXML-Projekt, um die Kompromisse zwischen den Optionen zu verstehen. IronXLs Vorteil ist seine Kombination aus einer reichen API, Nein-Office-required-Bereitstellung und umfassender plattformübergreifender Unterstützung unter einer einzigen kommerziellen Lizenz.

Häufig gestellte Fragen

Was ist IronXL?

IronXL ist eine .NET Bibliothek, die die Arbeit mit Excel-Dateien in C#-Anwendungen vereinfacht und die Notwendigkeit von Microsoft Office Interop eliminiert.

Warum sollte ich Excel-Objekte in C# freigeben?

Das Freigeben von Excel-Objekten in C# ist entscheidend, um das Verweilen von Excel-Prozessen zu verhindern, da dies zu Leistungsproblemen und Speicherlecks führen kann.

Wie hilft IronXL bei der Bereinigung von Excel-Objekten?

IronXL automatisiert die Bereinigung von Excel-Objekten und reduziert so die Komplexität und die Fehler, die mit der manuellen Verwaltung von Interop-Objekten in C# verbunden sind.

Welche Herausforderungen ergeben sich bei der Verwendung von Excel Interop in C#?

Die Excel-Interop-Implementierung in C# führt aufgrund der manuellen Verwaltung von COM-Objekten häufig zu Problemen wie verweilenden Prozessen und Speicherlecks.

Kann ich Excel-Dateien bearbeiten, ohne dass Microsoft Office installiert ist?

Ja, mit IronXL können Sie Excel-Dateien bearbeiten, ohne dass Microsoft Office auf Ihrem System installiert sein muss.

Unterstützt IronXL alle Excel-Dateiformate?

IronXL unterstützt eine breite Palette von Excel-Dateiformaten, darunter XLSX, XLS, CSV und mehr, und ermöglicht so vielseitige Dateioperationen.

Ist IronXL für die Bearbeitung großer Excel-Dateien geeignet?

IronXL wurde für die effiziente Verarbeitung umfangreicher Excel-Dateioperationen entwickelt und eignet sich daher für Anwendungen auf Unternehmensebene.

Was sind die Vorteile der Verwendung von IronXL gegenüber Excel Interop?

IronXL bietet im Vergleich zu Excel Interop Vorteile wie vereinfachten Code, bessere Leistung und die Beseitigung von COM-bezogenen Problemen.

Wie kann ich IronXL in mein C#-Projekt integrieren?

Sie können IronXL in Ihr C#-Projekt integrieren, indem Sie es über den NuGet Paketmanager installieren und in Ihrem Anwendungscode darauf verweisen.

Bietet IronXL Unterstützung für Excel-Formeln?

Ja, IronXL unterstützt Excel-Formeln, sodass Sie diese in Ihren C#-Anwendungen lesen, schreiben und auswerten können.

Jordi Bardia
Software Ingenieur
Jordi ist am besten in Python, C# und C++ versiert. Wenn er nicht bei Iron Software seine Fähigkeiten einsetzt, programmiert er Spiele. Mit Verantwortung für Produkttests, Produktentwicklung und -forschung trägt Jordi mit immensem Wert zur kontinuierlichen Produktverbesserung bei. Die abwechslungsreiche Erfahrung hält ihn gefordert und engagiert, ...
Weiterlesen

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me