Zum Fußzeileninhalt springen
IRONXL VERWENDEN

Wie man eine Excel Pivot-Tabelle in C# erstellt

Die Arbeit mit einer Excel-Pivottabelle programmatisch ist ein häufiges Erfordernis in Geschäftsanwendungen, die Quelldaten analysieren und berechnen müssen. Während Microsofts Excel Interop die traditionelle Methode war, eine Pivottabelle in einer Excel-Datei zu erstellen, bieten moderne Lösungen wie IronXL erhebliche Vorteile. Dieser Leitfaden beschreibt beide Methoden mit praktischen Beispielen, um Ihnen bei der Erstellung einer Pivottabelle in Excel mit C# Interop zu helfen oder eine bessere Alternative zu wählen.

Verständnis der zwei Ansätze

Was ist Excel Interop?

Excel Interop verwendet COM (Component Object Model), um Microsoft Excel direkt über C# zu steuern. Es erfordert eine Office-Installation auf dem System und automatisiert Excel im Wesentlichen so, als ob ein Benutzer mit der Anwendung interagiert. Jedes Arbeitsblatt, jede Arbeitsmappe und jede Zelle wird damit zu einem Objekt, das Sie über Code manipulieren können.

Was ist IronXL?

IronXL ist eine eigenständige .NET-Bibliothek, die Excel-Dateien lesen, bearbeiten und erstellen kann, ohne Microsoft Office zu benötigen. Es funktioniert auf Windows, Linux, macOS und Docker-Containern, was es ideal für moderne Bereitstellungsszenarien macht. Sie können Daten öffnen, speichern und exportieren, ohne den Overhead von COM Interop.

Einrichten Ihrer Umgebung

Für Excel Interop

Install-Package Microsoft.Office.Interop.Excel

Für IronXL

Install-Package IronXL.Excel

Alternativ können Sie den NuGet-Paket-Manager-UI verwenden, indem Sie nach "IronXL.Excel" suchen und auf Installieren klicken. Sie können auch über die .NET CLI mit Befehlsargumenten installieren oder es direkt von GitHub referenzieren.

Beide Bibliotheken sind über NuGet verfügbar. Beachten Sie, dass Excel Interop eine vollständige Microsoft Office-Installation erfordert, während IronXL unabhängig arbeitet. Bevor Sie fortfahren, stellen Sie sicher, dass Ihr System die Anforderungen erfüllt.

Erstellen einer Excel-Pivottabelle programmatisch mit C# Interop

Hier ist ein vollständiges Beispiel, das zeigt, wie man mit dem traditionellen Interop-Ansatz programmatisch eine Pivottabelle erstellt:

using Excel = Microsoft.Office.Interop.Excel;
class Program
{
    static void Main(string[] args)
    {
        // Create Excel application instance
        var excelApp = new Excel.Application();
        var workbook = excelApp.Workbooks.Add();
                    var dataSheet = (Excel.Worksheet)workbook.Worksheets[1];
            var pivotSheet = (Excel.Worksheet)workbook.Worksheets.Add();
            // Add header row and sample data
            dataSheet.Cells[1, 1] = "Product";
            dataSheet.Cells[1, 2] = "Region";
            dataSheet.Cells[1, 3] = "Sales";
            // ... populate data rows with values
            // Add sample data rows
            dataSheet.Cells[2, 1] = "Laptop";
            dataSheet.Cells[2, 2] = "North";
            dataSheet.Cells[2, 3] = 1200;
            dataSheet.Cells[3, 1] = "Laptop";
            dataSheet.Cells[3, 2] = "South";
            dataSheet.Cells[3, 3] = 1500;
            dataSheet.Cells[4, 1] = "Phone";
            dataSheet.Cells[4, 2] = "North";
            dataSheet.Cells[4, 3] = 800;
            dataSheet.Cells[5, 1] = "Phone";
            dataSheet.Cells[5, 2] = "South";
            dataSheet.Cells[5, 3] = 950;
            dataSheet.Cells[6, 1] = "Tablet";
            dataSheet.Cells[6, 2] = "East";
            dataSheet.Cells[6, 3] = 600;
            dataSheet.Cells[7, 1] = "Tablet";
            dataSheet.Cells[7, 2] = "West";
            dataSheet.Cells[7, 3] = 750;
            dataSheet.Cells[8, 1] = "Monitor";
            dataSheet.Cells[8, 2] = "North";
            dataSheet.Cells[8, 3] = 400;
            dataSheet.Cells[9, 1] = "Monitor";
            dataSheet.Cells[9, 2] = "South";
            dataSheet.Cells[9, 3] = 500;
            dataSheet.Cells[10, 1] = "Keyboard";
            dataSheet.Cells[10, 2] = "East";
            dataSheet.Cells[10, 3] = 300;
            // Create pivot cache from source data range
            Excel.Range dataRange = dataSheet.Range["A1:C10"];
            Excel.PivotCache pivotCache = workbook.PivotCaches().Create(
                Excel.XlPivotTableSourceType.xlDatabase, dataRange);
            // Create PivotTable at specific location
            Excel.PivotTables pivotTables = (Excel.PivotTables)pivotSheet.PivotTables();
            Excel.PivotTable pivotTable = pivotTables.Add(
                pivotCache, pivotSheet.Range["A3"], "SalesPivot");
            // Configure pivot table fields - row and column headers
            ((Excel.PivotField)pivotTable.PivotFields("Product")).Orientation =
                Excel.XlPivotFieldOrientation.xlRowField;
            ((Excel.PivotField)pivotTable.PivotFields("Region")).Orientation =
                Excel.XlPivotFieldOrientation.xlColumnField;
            ((Excel.PivotField)pivotTable.PivotFields("Sales")).Orientation =
                Excel.XlPivotFieldOrientation.xlDataField;
            // Configure grand totals and formatting
            pivotTable.RowGrand = true;
            pivotTable.ColumnGrand = true;
            // Save the Excel file
            workbook.SaveAs("pivot_interop.xlsx");
            workbook.Close();
            excelApp.Quit();
            // Critical: Release COM objects to avoid errors
            #if WINDOWS
            Marshal.ReleaseComObject(pivotTable);
            Marshal.ReleaseComObject(pivotSheet);
            Marshal.ReleaseComObject(dataSheet);
            Marshal.ReleaseComObject(workbook);
            Marshal.ReleaseComObject(excelApp);
            #endif
    }
}
using Excel = Microsoft.Office.Interop.Excel;
class Program
{
    static void Main(string[] args)
    {
        // Create Excel application instance
        var excelApp = new Excel.Application();
        var workbook = excelApp.Workbooks.Add();
                    var dataSheet = (Excel.Worksheet)workbook.Worksheets[1];
            var pivotSheet = (Excel.Worksheet)workbook.Worksheets.Add();
            // Add header row and sample data
            dataSheet.Cells[1, 1] = "Product";
            dataSheet.Cells[1, 2] = "Region";
            dataSheet.Cells[1, 3] = "Sales";
            // ... populate data rows with values
            // Add sample data rows
            dataSheet.Cells[2, 1] = "Laptop";
            dataSheet.Cells[2, 2] = "North";
            dataSheet.Cells[2, 3] = 1200;
            dataSheet.Cells[3, 1] = "Laptop";
            dataSheet.Cells[3, 2] = "South";
            dataSheet.Cells[3, 3] = 1500;
            dataSheet.Cells[4, 1] = "Phone";
            dataSheet.Cells[4, 2] = "North";
            dataSheet.Cells[4, 3] = 800;
            dataSheet.Cells[5, 1] = "Phone";
            dataSheet.Cells[5, 2] = "South";
            dataSheet.Cells[5, 3] = 950;
            dataSheet.Cells[6, 1] = "Tablet";
            dataSheet.Cells[6, 2] = "East";
            dataSheet.Cells[6, 3] = 600;
            dataSheet.Cells[7, 1] = "Tablet";
            dataSheet.Cells[7, 2] = "West";
            dataSheet.Cells[7, 3] = 750;
            dataSheet.Cells[8, 1] = "Monitor";
            dataSheet.Cells[8, 2] = "North";
            dataSheet.Cells[8, 3] = 400;
            dataSheet.Cells[9, 1] = "Monitor";
            dataSheet.Cells[9, 2] = "South";
            dataSheet.Cells[9, 3] = 500;
            dataSheet.Cells[10, 1] = "Keyboard";
            dataSheet.Cells[10, 2] = "East";
            dataSheet.Cells[10, 3] = 300;
            // Create pivot cache from source data range
            Excel.Range dataRange = dataSheet.Range["A1:C10"];
            Excel.PivotCache pivotCache = workbook.PivotCaches().Create(
                Excel.XlPivotTableSourceType.xlDatabase, dataRange);
            // Create PivotTable at specific location
            Excel.PivotTables pivotTables = (Excel.PivotTables)pivotSheet.PivotTables();
            Excel.PivotTable pivotTable = pivotTables.Add(
                pivotCache, pivotSheet.Range["A3"], "SalesPivot");
            // Configure pivot table fields - row and column headers
            ((Excel.PivotField)pivotTable.PivotFields("Product")).Orientation =
                Excel.XlPivotFieldOrientation.xlRowField;
            ((Excel.PivotField)pivotTable.PivotFields("Region")).Orientation =
                Excel.XlPivotFieldOrientation.xlColumnField;
            ((Excel.PivotField)pivotTable.PivotFields("Sales")).Orientation =
                Excel.XlPivotFieldOrientation.xlDataField;
            // Configure grand totals and formatting
            pivotTable.RowGrand = true;
            pivotTable.ColumnGrand = true;
            // Save the Excel file
            workbook.SaveAs("pivot_interop.xlsx");
            workbook.Close();
            excelApp.Quit();
            // Critical: Release COM objects to avoid errors
            #if WINDOWS
            Marshal.ReleaseComObject(pivotTable);
            Marshal.ReleaseComObject(pivotSheet);
            Marshal.ReleaseComObject(dataSheet);
            Marshal.ReleaseComObject(workbook);
            Marshal.ReleaseComObject(excelApp);
            #endif
    }
}
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Runtime.InteropServices

Class Program
    Shared Sub Main(ByVal args() As String)
        ' Create Excel application instance
        Dim excelApp As New Excel.Application()
        Dim workbook As Excel.Workbook = excelApp.Workbooks.Add()
        Dim dataSheet As Excel.Worksheet = CType(workbook.Worksheets(1), Excel.Worksheet)
        Dim pivotSheet As Excel.Worksheet = CType(workbook.Worksheets.Add(), Excel.Worksheet)

        ' Add header row and sample data
        dataSheet.Cells(1, 1) = "Product"
        dataSheet.Cells(1, 2) = "Region"
        dataSheet.Cells(1, 3) = "Sales"
        ' ... populate data rows with values
        ' Add sample data rows
        dataSheet.Cells(2, 1) = "Laptop"
        dataSheet.Cells(2, 2) = "North"
        dataSheet.Cells(2, 3) = 1200
        dataSheet.Cells(3, 1) = "Laptop"
        dataSheet.Cells(3, 2) = "South"
        dataSheet.Cells(3, 3) = 1500
        dataSheet.Cells(4, 1) = "Phone"
        dataSheet.Cells(4, 2) = "North"
        dataSheet.Cells(4, 3) = 800
        dataSheet.Cells(5, 1) = "Phone"
        dataSheet.Cells(5, 2) = "South"
        dataSheet.Cells(5, 3) = 950
        dataSheet.Cells(6, 1) = "Tablet"
        dataSheet.Cells(6, 2) = "East"
        dataSheet.Cells(6, 3) = 600
        dataSheet.Cells(7, 1) = "Tablet"
        dataSheet.Cells(7, 2) = "West"
        dataSheet.Cells(7, 3) = 750
        dataSheet.Cells(8, 1) = "Monitor"
        dataSheet.Cells(8, 2) = "North"
        dataSheet.Cells(8, 3) = 400
        dataSheet.Cells(9, 1) = "Monitor"
        dataSheet.Cells(9, 2) = "South"
        dataSheet.Cells(9, 3) = 500
        dataSheet.Cells(10, 1) = "Keyboard"
        dataSheet.Cells(10, 2) = "East"
        dataSheet.Cells(10, 3) = 300

        ' Create pivot cache from source data range
        Dim dataRange As Excel.Range = dataSheet.Range("A1:C10")
        Dim pivotCache As Excel.PivotCache = workbook.PivotCaches().Create(Excel.XlPivotTableSourceType.xlDatabase, dataRange)

        ' Create PivotTable at specific location
        Dim pivotTables As Excel.PivotTables = CType(pivotSheet.PivotTables(), Excel.PivotTables)
        Dim pivotTable As Excel.PivotTable = pivotTables.Add(pivotCache, pivotSheet.Range("A3"), "SalesPivot")

        ' Configure pivot table fields - row and column headers
        CType(pivotTable.PivotFields("Product"), Excel.PivotField).Orientation = Excel.XlPivotFieldOrientation.xlRowField
        CType(pivotTable.PivotFields("Region"), Excel.PivotField).Orientation = Excel.XlPivotFieldOrientation.xlColumnField
        CType(pivotTable.PivotFields("Sales"), Excel.PivotField).Orientation = Excel.XlPivotFieldOrientation.xlDataField

        ' Configure grand totals and formatting
        pivotTable.RowGrand = True
        pivotTable.ColumnGrand = True

        ' Save the Excel file
        workbook.SaveAs("pivot_interop.xlsx")
        workbook.Close()
        excelApp.Quit()

        ' Critical: Release COM objects to avoid errors
#If WINDOWS Then
        Marshal.ReleaseComObject(pivotTable)
        Marshal.ReleaseComObject(pivotSheet)
        Marshal.ReleaseComObject(dataSheet)
        Marshal.ReleaseComObject(workbook)
        Marshal.ReleaseComObject(excelApp)
#End If
    End Sub
End Class
$vbLabelText   $csharpLabel

Dieser Code erstellt eine Excel-Anwendung, fügt ein Arbeitsblatt mit Quelldaten einschließlich einer Kopfzeile hinzu, erstellt einen Pivot-Cache, baut das PivotTable-Objekt und konfiguriert die Feldausrichtung. Der Bereinigungsteil ist entscheidend - das Versäumnis, COM-Objekte freizugeben, verursacht Speicherlecks. IronXL benötigt:

Der IronXL Alternative Ansatz

IronXL verfolgt einen anderen Ansatz, indem es direkt mit dem Excel-Dateiformat arbeitet. So erreichen Sie ähnliche Analysenergebnisse programmatisch:

using IronXL;
using System.Linq;
class Program 
{
    static void Main(string[] args)
    {
        // Create workbook and add worksheet with data
        WorkBook workbook = WorkBook.Create();
        WorkSheet sheet = workbook.CreateWorkSheet("Data");
        // Add header row to define column structure
        sheet["A1"].Value = "Product";
        sheet["B1"].Value = "Region";
        sheet["C1"].Value = "Sales";
        // Add sample data to cells
        sheet["A2"].Value = "Widget";
        sheet["B2"].Value = "North";
        sheet["C2"].Value = 1500;
        // ... continue to add more data rows
        sheet["A3"].Value = "Laptop";
        sheet["B3"].Value = "South";
        sheet["C3"].Value = 1500;
        sheet["A4"].Value = "Phone";
        sheet["B4"].Value = "North";
        sheet["C4"].Value = 800;
        sheet["A5"].Value = "Phone";
        sheet["B5"].Value = "South";
        sheet["C5"].Value = 950;
        sheet["A6"].Value = "Tablet";
        sheet["B6"].Value = "East";
        sheet["C6"].Value = 600;
        sheet["A7"].Value = "Tablet";
        sheet["B7"].Value = "West";
        sheet["C7"].Value = 750;
        sheet["A8"].Value = "Monitor";
        sheet["B8"].Value = "North";
        sheet["C8"].Value = 400;
        sheet["A9"].Value = "Monitor";
        sheet["B9"].Value = "South";
        sheet["C9"].Value = 500;
        sheet["A10"].Value = "Keyboard";
        sheet["B10"].Value = "East";
        sheet["C10"].Value = 300;
        // Create summary analysis worksheet
        var summarySheet = workbook.CreateWorkSheet("Summary");
        // Group and calculate aggregated data
        var data = sheet["A1:C10"].ToDataTable(true);
        var productSummary = data.AsEnumerable()
            .GroupBy(row => row.Field<string>("Product"))
            .Select((group, index) => new {
                Product = group.Key,
                TotalSales = group.Sum(r => Convert.ToDecimal(r["Sales"])),
                Count = group.Count(),
                RowIndex = index + 2
            });
        // Write column headers for summary
        summarySheet["A1"].Value = "Product Summary";
        summarySheet["A2"].Value = "Product";
        summarySheet["B2"].Value = "Total Sales";
        summarySheet["C2"].Value = "Count";
        // Export results to cells
        foreach (var item in productSummary)
        {
            summarySheet[$"A{item.RowIndex + 1}"].Value = item.Product;
            summarySheet[$"B{item.RowIndex + 1}"].Value = item.TotalSales;
            summarySheet[$"C{item.RowIndex + 1}"].Value = item.Count;
        }
        // Apply number formatting and style
        summarySheet["B:B"].FormatString = "$#,##0.00";
        // Save the xlsx file
        workbook.SaveAs("analysis_ironxl.xlsx");
    }
}
using IronXL;
using System.Linq;
class Program 
{
    static void Main(string[] args)
    {
        // Create workbook and add worksheet with data
        WorkBook workbook = WorkBook.Create();
        WorkSheet sheet = workbook.CreateWorkSheet("Data");
        // Add header row to define column structure
        sheet["A1"].Value = "Product";
        sheet["B1"].Value = "Region";
        sheet["C1"].Value = "Sales";
        // Add sample data to cells
        sheet["A2"].Value = "Widget";
        sheet["B2"].Value = "North";
        sheet["C2"].Value = 1500;
        // ... continue to add more data rows
        sheet["A3"].Value = "Laptop";
        sheet["B3"].Value = "South";
        sheet["C3"].Value = 1500;
        sheet["A4"].Value = "Phone";
        sheet["B4"].Value = "North";
        sheet["C4"].Value = 800;
        sheet["A5"].Value = "Phone";
        sheet["B5"].Value = "South";
        sheet["C5"].Value = 950;
        sheet["A6"].Value = "Tablet";
        sheet["B6"].Value = "East";
        sheet["C6"].Value = 600;
        sheet["A7"].Value = "Tablet";
        sheet["B7"].Value = "West";
        sheet["C7"].Value = 750;
        sheet["A8"].Value = "Monitor";
        sheet["B8"].Value = "North";
        sheet["C8"].Value = 400;
        sheet["A9"].Value = "Monitor";
        sheet["B9"].Value = "South";
        sheet["C9"].Value = 500;
        sheet["A10"].Value = "Keyboard";
        sheet["B10"].Value = "East";
        sheet["C10"].Value = 300;
        // Create summary analysis worksheet
        var summarySheet = workbook.CreateWorkSheet("Summary");
        // Group and calculate aggregated data
        var data = sheet["A1:C10"].ToDataTable(true);
        var productSummary = data.AsEnumerable()
            .GroupBy(row => row.Field<string>("Product"))
            .Select((group, index) => new {
                Product = group.Key,
                TotalSales = group.Sum(r => Convert.ToDecimal(r["Sales"])),
                Count = group.Count(),
                RowIndex = index + 2
            });
        // Write column headers for summary
        summarySheet["A1"].Value = "Product Summary";
        summarySheet["A2"].Value = "Product";
        summarySheet["B2"].Value = "Total Sales";
        summarySheet["C2"].Value = "Count";
        // Export results to cells
        foreach (var item in productSummary)
        {
            summarySheet[$"A{item.RowIndex + 1}"].Value = item.Product;
            summarySheet[$"B{item.RowIndex + 1}"].Value = item.TotalSales;
            summarySheet[$"C{item.RowIndex + 1}"].Value = item.Count;
        }
        // Apply number formatting and style
        summarySheet["B:B"].FormatString = "$#,##0.00";
        // Save the xlsx file
        workbook.SaveAs("analysis_ironxl.xlsx");
    }
}
Imports IronXL
Imports System.Linq

Class Program
    Shared Sub Main(args As String())
        ' Create workbook and add worksheet with data
        Dim workbook As WorkBook = WorkBook.Create()
        Dim sheet As WorkSheet = workbook.CreateWorkSheet("Data")
        ' Add header row to define column structure
        sheet("A1").Value = "Product"
        sheet("B1").Value = "Region"
        sheet("C1").Value = "Sales"
        ' Add sample data to cells
        sheet("A2").Value = "Widget"
        sheet("B2").Value = "North"
        sheet("C2").Value = 1500
        ' ... continue to add more data rows
        sheet("A3").Value = "Laptop"
        sheet("B3").Value = "South"
        sheet("C3").Value = 1500
        sheet("A4").Value = "Phone"
        sheet("B4").Value = "North"
        sheet("C4").Value = 800
        sheet("A5").Value = "Phone"
        sheet("B5").Value = "South"
        sheet("C5").Value = 950
        sheet("A6").Value = "Tablet"
        sheet("B6").Value = "East"
        sheet("C6").Value = 600
        sheet("A7").Value = "Tablet"
        sheet("B7").Value = "West"
        sheet("C7").Value = 750
        sheet("A8").Value = "Monitor"
        sheet("B8").Value = "North"
        sheet("C8").Value = 400
        sheet("A9").Value = "Monitor"
        sheet("B9").Value = "South"
        sheet("C9").Value = 500
        sheet("A10").Value = "Keyboard"
        sheet("B10").Value = "East"
        sheet("C10").Value = 300
        ' Create summary analysis worksheet
        Dim summarySheet = workbook.CreateWorkSheet("Summary")
        ' Group and calculate aggregated data
        Dim data = sheet("A1:C10").ToDataTable(True)
        Dim productSummary = data.AsEnumerable() _
            .GroupBy(Function(row) row.Field(Of String)("Product")) _
            .Select(Function(group, index) New With {
                .Product = group.Key,
                .TotalSales = group.Sum(Function(r) Convert.ToDecimal(r("Sales"))),
                .Count = group.Count(),
                .RowIndex = index + 2
            })
        ' Write column headers for summary
        summarySheet("A1").Value = "Product Summary"
        summarySheet("A2").Value = "Product"
        summarySheet("B2").Value = "Total Sales"
        summarySheet("C2").Value = "Count"
        ' Export results to cells
        For Each item In productSummary
            summarySheet($"A{item.RowIndex + 1}").Value = item.Product
            summarySheet($"B{item.RowIndex + 1}").Value = item.TotalSales
            summarySheet($"C{item.RowIndex + 1}").Value = item.Count
        Next
        ' Apply number formatting and style
        summarySheet("B:B").FormatString = "$#,##0.00"
        ' Save the xlsx file
        workbook.SaveAs("analysis_ironxl.xlsx")
    End Sub
End Class
$vbLabelText   $csharpLabel

Dieses IronXL-Beispiel zeigt, wie man eine Arbeitsmappe erstellt, Arbeitsblätter hinzufügt, Zellen mit Daten füllt und Aggregationsanalysen durchführt. Der Code gruppiert Daten nach Produkt und berechnet Summen und Zählungen, indem er einen Zusammenfassungsbericht erstellt. Es müssen keine COM-Objekte verwaltet werden, und die Methoden sind einfache .NET-Sammlungen, die automatisch den Speicher verwalten.

Ausgabe

Wie man eine Excel-Pivottabelle in C# erstellt: Abbildung 6 - IronXL-Ausgabe

Wie man eine Excel-Pivottabelle in C# erstellt: Abbildung 7 - Zusammenfassungsausgabe

Wichtige Unterschiede und Überlegungen

Bereitstellungsanforderungen

Excel Interop erfordert:

  • Microsoft Excel-Installation mit einer gültigen Lizenz
  • Windows-Betriebssystem
  • Ordentliche COM-Berechtigungen und -Einstellungen
  • Serverkonfiguration für Office-Automatisierung IronXL erfordert:

  • Nur das IronXL-Bibliothekspaket
  • Funktioniert auf jeder Plattform, die .NET unterstützt
  • Keine Office-Installation oder Lizenz erforderlich
  • Vereinfachter Bereitstellungsprozess

Wie man eine Excel-Pivottabelle in C# erstellt: Abbildung 8 - Funktionen

Codequalität und Wartung

Interop umfasst das sorgfältige Verwalten von COM-Objekten, um Speicherlecks und Fehler zu vermeiden. Jedes erstellte Excel-Objekt muss explizit über die richtigen Methoden freigegeben werden. IronXL verwendet Standard-.NET-Objekte mit automatischer Garbage Collection, was das Risiko von Ressourcenproblemen reduziert.

Fehlerbehandlung

Mit Interop hängen Fehler oft mit der Verfügbarkeit von Excel, Versionsunterschieden oder COM-Ausfällen zusammen. IronXL-Fehler sind Standard-.NET-Ausnahmen, was das Debuggen erleichtert. Sie können sich auf vertraute Try-Catch-Muster verlassen, ohne sich um COM-spezifische Probleme kümmern zu müssen.

Beste Praktiken und Empfehlungen

Wählen Sie Excel Interop, wenn:

  • Sie genaue Excel-Pivottabellenfunktionen mit allen Formatierungsoptionen benötigen
  • Excel wird garantiert auf dem System verfügbar sein
  • Nur an Windows-Desktopanwendungen arbeiten
  • Legacy-Code-Anforderungen Wählen Sie IronXL, wenn:

  • Erstellung von Serveranwendungen oder Weblösungen
  • Erforderliche plattformübergreifende Kompatibilität
  • Zuverlässige Leistung ohne COM-Overhead erforderlich
  • Bereitstellung in Containern oder Cloud-Umgebungen

Besuchen Sie IronXL-Dokumentation, um mehr Details über die Implementierung zu erfahren. Für Fragen oder Unterstützung, kontaktieren Sie das Iron Software-Team.

Abschluss

Während C# Interop direkten Zugriff auf die Erstellung von Pivot-Tabellen in Excel bietet, bringt es Bereitstellungseinschränkungen und Komplexität mit sich. IronXL bietet eine moderne Alternative, die die Manipulation von Excel-Dateien vereinfacht und die Flexibilität bietet, überall zu laufen, wo .NET unterstützt wird.

Für Entwickler, die neue Anwendungen erstellen oder bestehende Lösungen modernisieren, beseitigt der Ansatz von IronXL den COM-Interop-Overhead und bietet leistungsstarke Datenmanipulationsfunktionen. Ob Sie Daten in Excel lesen, bearbeiten oder exportieren müssen, IronXL liefert eine sauberere Lösung.

Starten Sie mit IronXLs kostenloser Testversion, um den Unterschied zu erleben oder erkunden Sie Tutorials, um weitere Beispiele zu sehen. Bereit zum Deployment? Sehen Sie sich die Lizenzierungsoptionen an, um das richtige Paket für Ihre Aufgabe zu wählen.

Wie man eine Excel-Pivottabelle in C# erstellt: Abbildung 9 - Lizenzierung

Häufig gestellte Fragen

Was ist der Vorteil von IronXL gegenüber Excel Interop bei der Erstellung von Pivot-Tabellen?

IronXL bietet erhebliche Vorteile gegenüber Excel Interop, darunter Benutzerfreundlichkeit, bessere Leistung und die Möglichkeit, Pivot-Tabellen zu erstellen, ohne Excel auf dem Server installieren zu müssen.

Kann ich eine Excel-Pivot-Tabelle in C# ohne Excel Interop erstellen?

Ja, Sie können eine Excel-Pivot-Tabelle in C# mit IronXL erstellen, das eine moderne und effiziente Alternative zu Excel Interop bietet.

Ist es notwendig, dass Microsoft Excel installiert ist, um IronXL zu verwenden?

Nein, IronXL erfordert nicht, dass Microsoft Excel auf Ihrem System installiert ist, was es zu einer flexiblen Lösung für die Erstellung und Verwaltung von Excel-Dateien macht.

Welche Schritte sind erforderlich, um eine Pivot-Tabelle in Excel mit IronXL zu erstellen?

Um eine Pivot-Tabelle mit IronXL zu erstellen, laden Sie zunächst Ihre Excel-Datei, spezifizieren Sie den Datenbereich, definieren Sie Ihre Pivot-Tabellenfelder und generieren dann die Pivot-Tabelle. IronXL's umfassende API macht diesen Prozess einfach.

Unterstützt IronXL neben Pivot-Tabellen auch andere Excel-Funktionalitäten?

Ja, IronXL unterstützt eine Vielzahl von Excel-Funktionalitäten, darunter das Lesen und Schreiben von Excel-Dateien, das Formatieren von Zellen und das Durchführen von Berechnungen, unter anderem.

Wie geht IronXL mit großen Datensätzen um, wenn Pivot-Tabellen erstellt werden?

IronXL ist darauf ausgelegt, große Datensätze effizient zu verarbeiten, was eine schnelle und zuverlässige Erstellung von Pivot-Tabellen auch bei umfangreichen Daten gewährleistet.

Kann IronXL in cloudbasierten Anwendungen verwendet werden?

Ja, IronXL kann in cloudbasierten Anwendungen integriert werden und bietet eine nahtlose Lösung für die Verwaltung von Excel-Dateien in der Cloud.

Welche Programmiersprachen werden von IronXL für die Erstellung von Pivot-Tabellen unterstützt?

IronXL unterstützt hauptsächlich C#, was die Erstellung von Pivot-Tabellen und die Durchführung anderer Excel-Operationen innerhalb von .NET-Anwendungen erleichtert.

Gibt es Tutorials zum Erlernen der Nutzung von IronXL?

Ja, Iron Software bietet umfassende Dokumentationen und Tutorials auf ihrer Website, um Benutzern zu helfen, effektiv zu lernen, wie man IronXL verwendet.

Welche Lizenzierungsoptionen gibt es für IronXL?

IronXL bietet verschiedene Lizenzierungsoptionen, einschließlich kostenloser und kostenpflichtiger Stufen, um unterschiedliche Projektanforderungen und Skalen zu berücksichtigen.

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