C# Schreiben nach Excel[Ohne Verwendung von Interop] Codebeispiel Tutorial

This article was translated from English: Does it need improvement?
Translated
View the article in English

von Elijah Williams

Folgen Sie den Schritt-für-Schritt-Beispielen zum Erstellen, Öffnen und Speichern von Excel-Dateien mit C# und wenden Sie grundlegende Operationen wie Summe, Durchschnitt, Anzahl und mehr an. IronXL.Excel ist eine eigenständige .NET-Softwarebibliothek zum Lesen einer breiten Palette von Tabellenkalkulationsformaten. Es ist nicht erforderlichMicrosoft Excel installiert werden und hängen nicht von Interop ab.


Übersicht

IronXL zum Öffnen und Schreiben von Excel-Dateien verwenden

Öffnen, Schreiben, Speichern und Anpassen von Excel-Dateien mit dem einfach zu bedienenden IronXL C# Bibliothek.

Herunterladen einer beispielprojekt von GitHub oder verwenden Sie Ihre eigene und folgen Sie der Anleitung.

  1. Installieren Sie die IronXL Excel-Bibliothek von NuGet oder den DLL-Download

  2. Verwenden Sie die Methode WorkBook.Load, um ein beliebiges XLS-, XLSX- oder CSV-Dokument zu lesen.

  3. Abrufen von Zellwerten mit intuitiver Syntax: blatt ["A11"].DecimalValue

    In diesem Lernprogramm werden wir Sie durch die einzelnen Schritte führen:

    • Installation von IronXL.Excel: Wie wird IronXL.Excel in einem bestehenden Projekt installiert?
    • Grundlegende Operationen: Grundlegende Arbeitsschritte mit Excel zum Erstellen oder Öffnen von Arbeitsmappen, Auswählen von Blättern und Zellen und Speichern von Arbeitsmappen
    • Fortgeschrittene Blattoperationen: wie man verschiedene Manipulationsmöglichkeiten wie das Hinzufügen von Kopf- oder Fußzeilen, mathematische Operationen und andere Funktionen nutzen kann.

      Öffnen einer Excel-Datei: Quick Code

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-1.cs
using IronXL;

WorkBook workBook = WorkBook.Load("test.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
IronXL.Range range = workSheet["A2:A8"];
decimal total = 0;

// iterate over range of cells
foreach (var cell in range)
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.RowIndex, cell.Value);
    if (cell.IsNumeric)
    {
        // Get decimal value to avoid floating numbers precision issue
        total += cell.DecimalValue;
    }
}

// Check formula evaluation
if (workSheet["A11"].DecimalValue == total)
{
    Console.WriteLine("Basic Test Passed");
}
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("test.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet
Private range As IronXL.Range = workSheet("A2:A8")
Private total As Decimal = 0

' iterate over range of cells
For Each cell In range
	Console.WriteLine("Cell {0} has value '{1}'", cell.RowIndex, cell.Value)
	If cell.IsNumeric Then
		' Get decimal value to avoid floating numbers precision issue
		total += cell.DecimalValue
	End If
Next cell

' Check formula evaluation
If workSheet("A11").DecimalValue = total Then
	Console.WriteLine("Basic Test Passed")
End If
VB   C#

Schreiben und Speichern von Änderungen in der Excel-Datei: Quick Code

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-2.cs
workSheet["B1"].Value = 11.54;

// Save Changes
workBook.SaveAs("test.xlsx");
workSheet("B1").Value = 11.54

' Save Changes
workBook.SaveAs("test.xlsx")
VB   C#

Schritt 1

1. Installieren Sie die IronXL C# Bibliothek FREE

Beginnen Sie noch heute mit der Verwendung von IronXL in Ihrem Projekt mit einer kostenlosen Testversion.

Erster Schritt:
green arrow pointer


IronXL.Excel bietet eine flexible und leistungsstarke Bibliothek zum Öffnen, Lesen, Bearbeiten und Speichern von Excel-Dateien in .NET. Es kann auf allen .NET-Projekttypen, wie Windows-Anwendungen, ASP.NET MVC und .NET Core Application, installiert und verwendet werden.

Installieren Sie die Excel-Bibliothek in Ihrem Visual Studio-Projekt mit NuGet

Der erste Schritt ist die Installation von IronXL.Excel. Um die IronXL.Excel-Bibliothek zum Projekt hinzuzufügen, gibt es zwei Möglichkeiten: NuGet Package Manager oder NuGet Package Manager Console.

Um die IronXL.Excel-Bibliothek mit NuGet zu unserem Projekt hinzuzufügen, können wir eine visualisierte Schnittstelle, den NuGet Package Manager, verwenden:

  1. Mit der Maus -> Rechtsklick auf den Projektnamen -> NuGet-Paket verwalten auswählen

    Select Manage Nuget Package related to Installieren Sie die Excel-Bibliothek in Ihrem Visual Studio-Projekt mit NuGet

  2. Auf der Registerkarte Durchsuchen -> Suchen Sie nach IronXL.Excel -> Installieren

    Search For Ironxl related to Installieren Sie die Excel-Bibliothek in Ihrem Visual Studio-Projekt mit NuGet

  3. Und wir sind fertig

    And We Are Done related to Installieren Sie die Excel-Bibliothek in Ihrem Visual Studio-Projekt mit NuGet

Installation über die NuGet-Paketmanager-Konsole

  1. Über Werkzeuge -> NuGet Package Manager -> Package Manager Console

    Package Manager Console related to Installation über die NuGet-Paketmanager-Konsole

  2. Befehl ausführen -> Install-Package IronXL.Excel -Version 2019.5.2

    Install Package Ironxl related to Installation über die NuGet-Paketmanager-Konsole

Manuelle Installation mit der DLL

Sie können das Programm auch manuell installieren DLL in Ihr Projekt oder in Ihren globalen Assembly-Cache.


 PM > Installieren-Paket IronXL.Excel

Anleitungen Tutorials

2. Grundlegende Operationen: Erstellen, Öffnen, Speichern

2.1. Beispielprojekt: HelloWorld Konsolenanwendung

Ein HelloWorld-Projekt erstellen

.1.1. Visual Studio öffnen

Open Visual Studio related to 2.1. Beispielprojekt: HelloWorld Konsolenanwendung

.1.2. Wählen Sie Neues Projekt erstellen

Choose Create New Project related to 2.1. Beispielprojekt: HelloWorld Konsolenanwendung

.1.3. Wählen Sie Console App (.NET-Framework)

Choose Console App related to 2.1. Beispielprojekt: HelloWorld Konsolenanwendung

.1.4. Geben Sie unserem Beispiel den Namen "HelloWorld" und klicken Sie auf Erstellen

Give Our Sample Name related to 2.1. Beispielprojekt: HelloWorld Konsolenanwendung

.1.5. Jetzt haben wir eine Konsolenanwendung erstellt

Console Application Created related to 2.1. Beispielprojekt: HelloWorld Konsolenanwendung

.1.6. IronXL.Excel hinzufügen => installieren klicken

Add Ironxl Click Install related to 2.1. Beispielprojekt: HelloWorld Konsolenanwendung

.1.7. Fügen Sie die ersten Zeilen hinzu, die die erste Zelle im ersten Blatt der Excel-Datei lesen, und drucken Sie

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-3.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\HelloWorld.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
string cell = workSheet["A1"].StringValue;
Console.WriteLine(cell);
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\HelloWorld.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim cell As String = workSheet("A1").StringValue
Console.WriteLine(cell)
VB   C#

2.2. Erstellen Sie eine neue Excel-Datei

Erstellen einer neuen Excel-Datei mit IronXL

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-4.cs
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
workBook.Metadata.Title = "IronXL New File";
WorkSheet workSheet = workBook.CreateWorkSheet("1stWorkSheet");
workSheet["A1"].Value = "Hello World";
workSheet["A2"].Style.BottomBorder.SetColor("#ff6600");
workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dashed;
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
workBook.Metadata.Title = "IronXL New File"
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("1stWorkSheet")
workSheet("A1").Value = "Hello World"
workSheet("A2").Style.BottomBorder.SetColor("#ff6600")
workSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dashed
VB   C#

2.3. Öffnen (CSV, XML, JSON Liste) als Arbeitsmappe

.3.1. CSV-Datei öffnen

.3.2 Erstellen Sie eine neue Textdatei und fügen Sie ihr eine Liste mit Namen und Alter hinzu (siehe Beispiel) und speichern Sie sie als CSVList.csv

Code Snippet related to 2.3. Öffnen (CSV, XML, JSON Liste) als Arbeitsmappe

Ihr Codeschnipsel sollte wie folgt aussehen

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-5.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\CSVList.csv");
WorkSheet workSheet = workBook.WorkSheets.First();
string cell = workSheet["A1"].StringValue;
Console.WriteLine(cell);
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\CSVList.csv")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim cell As String = workSheet("A1").StringValue
Console.WriteLine(cell)
VB   C#

2.3.3. XML-Datei öffnen Erstellen Sie eine XML-Datei, die eine Länderliste enthält: das Wurzelelement "countries", mit untergeordneten Elementen "country", und jedes Land hat Eigenschaften, die das Land definieren, wie Code, Kontinent, usw.

<?xml version="1.0" encoding="utf-8"?>
<countries xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <country code="ae" handle="united-arab-emirates" continent="asia" iso="784">United Arab Emirates</country>
        <country code="gb" handle="united-kingdom" continent="europe" alt="England Scotland Wales GB UK Great Britain Britain Northern" boost="3" iso="826">United Kingdom</country>
        <country code="us" handle="united-states" continent="north america" alt="US America USA" boost="2" iso="840">United States</country>
        <country code="um" handle="united-states-minor-outlying-islands" continent="north america" iso="581">United States Minor Outlying Islands</country>
</countries>
<?xml version="1.0" encoding="utf-8"?>
<countries xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <country code="ae" handle="united-arab-emirates" continent="asia" iso="784">United Arab Emirates</country>
        <country code="gb" handle="united-kingdom" continent="europe" alt="England Scotland Wales GB UK Great Britain Britain Northern" boost="3" iso="826">United Kingdom</country>
        <country code="us" handle="united-states" continent="north america" alt="US America USA" boost="2" iso="840">United States</country>
        <country code="um" handle="united-states-minor-outlying-islands" continent="north america" iso="581">United States Minor Outlying Islands</country>
</countries>
HTML

.3.4. Kopieren Sie das folgende Codefragment, um XML als Arbeitsmappe zu öffnen

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-7.cs
DataSet xmldataset = new DataSet();
xmldataset.ReadXml($@"{Directory.GetCurrentDirectory()}\Files\CountryList.xml");
WorkBook workBook = IronXL.WorkBook.Load(xmldataset);
WorkSheet workSheet = workBook.WorkSheets.First();
Dim xmldataset As New DataSet()
xmldataset.ReadXml($"{Directory.GetCurrentDirectory()}\Files\CountryList.xml")
Dim workBook As WorkBook = IronXL.WorkBook.Load(xmldataset)
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
VB   C#

2.3.5. JSON-Liste als Arbeitsmappe öffnen JSON-Länderliste erstellen

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-8.cs
[
    {
        "name": "United Arab Emirates",
        "code": "AE"
    },
    {
        "name": "United Kingdom",
        "code": "GB"
    },
    {
        "name": "United States",
        "code": "US"
    },
    {
        "name": "United States Minor Outlying Islands",
        "code": "UM"
    }
]
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'[{ "name": "United Arab Emirates", "code": "AE" }, { "name": "United Kingdom", "code": "GB" }, { "name": "United States", "code": "US" }, { "name": "United States Minor Outlying Islands", "code": "UM" }]
VB   C#

.3.6. Erstellen Sie ein Ländermodell, das auf JSON abgebildet wird

Create Country Model related to 2.3. Öffnen (CSV, XML, JSON Liste) als Arbeitsmappe

Hier ist der Klassencodeausschnitt

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-9.cs
public class CountryModel
    {
        public string name { get; set; }
        public string code { get; set; }
    }
Public Class CountryModel
		Public Property name() As String
		Public Property code() As String
End Class
VB   C#

.3.8. Hinzufügen der Newtonsoft-Bibliothek zur Konvertierung von JSON in die Liste der Ländermodelle

Add Newtonsoft Library To Convert Json related to 2.3. Öffnen (CSV, XML, JSON Liste) als Arbeitsmappe

.3.9 Um die Liste in einen Datensatz zu konvertieren, müssen wir eine neue Erweiterung für die Liste erstellen. Erweiterungsklasse mit dem Namen "ListConvertExtension" hinzufügen

Convert List To Dataset related to 2.3. Öffnen (CSV, XML, JSON Liste) als Arbeitsmappe

Fügen Sie dann dieses Codeschnipsel hinzu

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-10.cs
public static class ListConvertExtension
    {
        public static DataSet ToDataSet<T>(this IList<T> list)
        {
            Type elementType = typeof(T);
            DataSet ds = new DataSet();
            DataTable t = new DataTable();
            ds.Tables.Add(t);
            //add a column to table for each public property on T
            foreach (var propInfo in elementType.GetProperties())
            {
                Type ColType = Nullable.GetUnderlyingType(propInfo.PropertyType) ?? propInfo.PropertyType;
                t.Columns.Add(propInfo.Name, ColType);
            }
            //go through each property on T and add each value to the table
            foreach (T item in list)
            {
                DataRow row = t.NewRow();
                foreach (var propInfo in elementType.GetProperties())
                {
                    row[propInfo.Name] = propInfo.GetValue(item, null) ?? DBNull.Value;
                }
                t.Rows.Add(row);
            }
            return ds;
        }
    }
Public Module ListConvertExtension
		<System.Runtime.CompilerServices.Extension> _
		Public Function ToDataSet(Of T)(ByVal list As IList(Of T)) As DataSet
			Dim elementType As Type = GetType(T)
			Dim ds As New DataSet()
'INSTANT VB NOTE: The variable t was renamed since Visual Basic does not allow local variables with the same name as method-level generic type parameters:
			Dim t_Conflict As New DataTable()
			ds.Tables.Add(t_Conflict)
			'add a column to table for each public property on T
			For Each propInfo In elementType.GetProperties()
				Dim ColType As Type = If(Nullable.GetUnderlyingType(propInfo.PropertyType), propInfo.PropertyType)
				t_Conflict.Columns.Add(propInfo.Name, ColType)
			Next propInfo
			'go through each property on T and add each value to the table
			For Each item As T In list
				Dim row As DataRow = t_Conflict.NewRow()
				For Each propInfo In elementType.GetProperties()
					row(propInfo.Name) = If(propInfo.GetValue(item, Nothing), DBNull.Value)
				Next propInfo
				t_Conflict.Rows.Add(row)
			Next item
			Return ds
		End Function
End Module
VB   C#

Und schließlich laden Sie diesen Datensatz in eine Arbeitsmappe

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-11.cs
StreamReader jsonFile = new StreamReader($@"{Directory.GetCurrentDirectory()}\Files\CountriesList.json");
var countryList = Newtonsoft.Json.JsonConvert.DeserializeObject<CountryModel[]>(jsonFile.ReadToEnd());
var xmldataset = countryList.ToDataSet();
WorkBook workBook = IronXL.WorkBook.Load(xmldataset);
WorkSheet workSheet = workBook.WorkSheets.First();
Dim jsonFile As New StreamReader($"{Directory.GetCurrentDirectory()}\Files\CountriesList.json")
Dim countryList = Newtonsoft.Json.JsonConvert.DeserializeObject(Of CountryModel())(jsonFile.ReadToEnd())
Dim xmldataset = countryList.ToDataSet()
Dim workBook As WorkBook = IronXL.WorkBook.Load(xmldataset)
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
VB   C#

2.4. Speichern und exportieren

Wir können die Excel-Datei mit einem der folgenden Befehle in verschiedenen Dateiformaten speichern oder exportieren (".xlsx",".csv",".html").

2.4.1. Speichern unter ".xlsx" Zum Speichern in ".xlsx" die Funktion saveAs verwenden

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-12.cs
WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
workBook.Metadata.Title = "IronXL New File";

WorkSheet workSheet = workBook.CreateWorkSheet("1stWorkSheet");
workSheet["A1"].Value = "Hello World";
workSheet["A2"].Style.BottomBorder.SetColor("#ff6600");
workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Dashed;

workBook.SaveAs($@"{Directory.GetCurrentDirectory()}\Files\HelloWorld.xlsx");
Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
workBook.Metadata.Title = "IronXL New File"

Dim workSheet As WorkSheet = workBook.CreateWorkSheet("1stWorkSheet")
workSheet("A1").Value = "Hello World"
workSheet("A2").Style.BottomBorder.SetColor("#ff6600")
workSheet("A2").Style.BottomBorder.Type = IronXL.Styles.BorderType.Dashed

workBook.SaveAs($"{Directory.GetCurrentDirectory()}\Files\HelloWorld.xlsx")
VB   C#

2.4.2. Speichern in csv ".csv" Zum Speichern in ".csv" können wir SaveAsCsv verwenden und ihm 2 Parameter übergeben. Der erste Parameter ist der Dateiname und der Pfad, der zweite Parameter ist das Trennzeichen, z. B ("," oder " " oder ":")

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-13.cs
workBook.SaveAsCsv($@"{Directory.GetCurrentDirectory()}\Files\HelloWorld.csv", delimiter: "|");
workBook.SaveAsCsv($"{Directory.GetCurrentDirectory()}\Files\HelloWorld.csv", delimiter:= "|")
VB   C#

2.4.3. Speichern in JSON ".json" Zum Speichern in Json ".json" verwenden Sie SaveAsJson wie folgt

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-14.cs
workBook.SaveAsJson($@"{Directory.GetCurrentDirectory()}\Files\HelloWorldJSON.json");
workBook.SaveAsJson($"{Directory.GetCurrentDirectory()}\Files\HelloWorldJSON.json")
VB   C#

Die Ergebnisdatei sollte wie folgt aussehen

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-15.cs
[
    [
        "Hello World"
    ],
    [
        ""
    ]
]
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'[["Hello World"], [""]]
VB   C#

2.4.4. Speichern als XML ".xml" Zum Speichern in Xml verwenden Sie SaveAsXml wie folgt

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-16.cs
workBook.SaveAsXml($@"{Directory.GetCurrentDirectory()}\Files\HelloWorldXML.XML");
workBook.SaveAsXml($"{Directory.GetCurrentDirectory()}\Files\HelloWorldXML.XML")
VB   C#

Das Ergebnis sollte wie folgt aussehen

<?xml version="1.0" standalone="yes"?>
<_x0031_stWorkSheet>
  <_x0031_stWorkSheet>
    <Column1 xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Hello World</Column1>
  </_x0031_stWorkSheet>
  <_x0031_stWorkSheet>
    <Column1 xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
  </_x0031_stWorkSheet>
</_x0031_stWorkSheet>
<?xml version="1.0" standalone="yes"?>
<_x0031_stWorkSheet>
  <_x0031_stWorkSheet>
    <Column1 xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Hello World</Column1>
  </_x0031_stWorkSheet>
  <_x0031_stWorkSheet>
    <Column1 xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" />
  </_x0031_stWorkSheet>
</_x0031_stWorkSheet>
HTML

3. Erweiterte Operationen: Summe, Durchschnitt, Anzahl, etc.

Wenden wir gängige Excel-Funktionen wie SUMME, AVG und Zählen an und sehen uns die einzelnen Codeschnipsel an.

3.1. Summe Beispiel

Lassen Sie uns die Summe für diese Liste ermitteln. Ich habe eine Excel-Datei mit dem Namen "Summe.xlsx" erstellt und diese Liste von Zahlen manuell hinzugefügt

Sum Example related to 3.1. Summe Beispiel

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-18.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
decimal sum = workSheet["A2:A4"].Sum();
Console.WriteLine(sum);
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim sum As Decimal = workSheet("A2:A4").Sum()
Console.WriteLine(sum)
VB   C#

3.2. Avg Beispiel

Mit der gleichen Datei können wir den Durchschnitt ermitteln:

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-19.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
decimal avg = workSheet["A2:A4"].Avg();
Console.WriteLine(avg);
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim avg As Decimal = workSheet("A2:A4").Avg()
Console.WriteLine(avg)
VB   C#

3.3. Zählbeispiel

Mit der gleichen Datei können wir auch die Anzahl der Elemente in einer Folge ermitteln:

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-20.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
decimal count = workSheet["A2:A4"].Count();
Console.WriteLine(count);
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim count As Decimal = workSheet("A2:A4").Count()
Console.WriteLine(count)
VB   C#

3.4. Max Beispiel

Mit der gleichen Datei können wir den Maximalwert eines Bereichs von Zellen ermitteln:

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-21.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
decimal max = workSheet["A2:A4"].Max();
Console.WriteLine(max);
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim max As Decimal = workSheet("A2:A4").Max()
Console.WriteLine(max)
VB   C#

- Wir können die Transformationsfunktion auf das Ergebnis der Max-Funktion anwenden:

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-22.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
bool max2 = workSheet["A1:A4"].Max(c => c.IsFormula);
Console.WriteLine(max2);
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim max2 As Boolean = workSheet("A1:A4").Max(Function(c) c.IsFormula)
Console.WriteLine(max2)
VB   C#

Dieses Beispiel schreibt "false" in die Konsole.

3.5. Min Beispiel

Mit der gleichen Datei können wir den Mindestwert eines Bereichs von Zellen ermitteln:

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-23.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
decimal min = workSheet["A1:A4"].Min();
Console.WriteLine(min);
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim min As Decimal = workSheet("A1:A4").Min()
Console.WriteLine(min)
VB   C#

3.6. Zellen bestellen Beispiel

Mit derselben Datei können wir die Zellen in aufsteigender oder absteigender Reihenfolge ordnen:

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-24.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
workSheet["A1:A4"].SortAscending();
// workSheet["A1:A4"].SortDescending(); to order descending
workBook.SaveAs("SortedSheet.xlsx");
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
workSheet("A1:A4").SortAscending()
' workSheet["A1:A4"].SortDescending(); to order descending
workBook.SaveAs("SortedSheet.xlsx")
VB   C#

3.7. Wenn Bedingung Beispiel

Mit der gleichen Datei können wir die Eigenschaft Formula verwenden, um die Formel einer Zelle festzulegen oder abzurufen:

.7.1. Speichern als XML ".xml"

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-25.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
int i = 1;
foreach (var cell in workSheet["B1:B4"])
{
    cell.Formula = "=IF(A" + i + ">=20,\" Pass\" ,\" Fail\" )";
    i++;
}
workBook.SaveAs($@"{Directory.GetCurrentDirectory()}\Files\NewExcelFile.xlsx");
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\Sum.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim i As Integer = 1
For Each cell In workSheet("B1:B4")
	cell.Formula = "=IF(A" & i & ">=20,"" Pass"" ,"" Fail"" )"
	i += 1
Next cell
workBook.SaveAs($"{Directory.GetCurrentDirectory()}\Files\NewExcelFile.xlsx")
VB   C#

.2. Anhand der generierten Datei aus dem vorherigen Beispiel können wir die Formel der Zelle ermitteln:

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-26.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\NewExcelFile.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
foreach (var cell in workSheet["B1:B4"])
{
    Console.WriteLine(cell.Formula);
}
Console.ReadKey();
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\NewExcelFile.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
For Each cell In workSheet("B1:B4")
	Console.WriteLine(cell.Formula)
Next cell
Console.ReadKey()
VB   C#

3.8. Trimm-Beispiel

Um die Trimmfunktion anzuwenden (um alle zusätzlichen Leerzeichen in den Zellen zu entfernen), habe ich diese Spalte in die Datei sum.xlsx eingefügt

Trim Example related to 3.8. Trimm-Beispiel

Und verwenden Sie diesen Code

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-27.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\NewExcelFile.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();
int i = 1;
foreach (var cell in workSheet["f1:f4"])
{
    cell.Formula = "=trim(D" + i + ")";
    i++;
}
workBook.SaveAs("editedFile.xlsx");
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\NewExcelFile.xlsx")
Dim workSheet As WorkSheet = workBook.WorkSheets.First()
Dim i As Integer = 1
For Each cell In workSheet("f1:f4")
	cell.Formula = "=trim(D" & i & ")"
	i += 1
Next cell
workBook.SaveAs("editedFile.xlsx")
VB   C#

Sie können also Formeln auf dieselbe Weise anwenden.


4. Arbeiten mit blattübergreifenden Arbeitsmappen

Wir werden sehen, wie man mit Arbeitsmappen arbeitet, die mehr als ein Blatt haben.

4.1. Daten aus mehreren Blättern in derselben Arbeitsmappe lesen

Ich habe eine xlsx-Datei erstellt, die zwei Blätter enthält: "Blatt1", "Blatt2"

Bis jetzt haben wir WorkSheets.First() verwendet, um mit dem ersten Blatt zu arbeiten. In diesem Beispiel geben wir den Blattnamen an und arbeiten mit ihm

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-28.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\testFile.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet2");
var range = workSheet["A2:D2"];
foreach (var cell in range)
{
    Console.WriteLine(cell.Text);
}
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\testFile.xlsx")
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet2")
Dim range = workSheet("A2:D2")
For Each cell In range
	Console.WriteLine(cell.Text)
Next cell
VB   C#

4.2. Neues Blatt zu einer Arbeitsmappe hinzufügen

Wir können auch ein neues Blatt zu einer Arbeitsmappe hinzufügen:

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-29.cs
WorkBook workBook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\testFile.xlsx");
WorkSheet workSheet = workBook.CreateWorkSheet("new_sheet");
workSheet["A1"].Value = "Hello World";
workBook.SaveAs(@"F:\MY WORK\IronPackage\Xl tutorial\newFile.xlsx");
Dim workBook As WorkBook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\testFile.xlsx")
Dim workSheet As WorkSheet = workBook.CreateWorkSheet("new_sheet")
workSheet("A1").Value = "Hello World"
workBook.SaveAs("F:\MY WORK\IronPackage\Xl tutorial\newFile.xlsx")
VB   C#

5. Integrieren mit Excel-Datenbank

Sehen wir uns an, wie man Daten in/aus einer Datenbank exportiert/importiert.

Ich habe die Datenbank "TestDb" erstellt, die eine Tabelle "Land" mit zwei Spalten enthält: Id(int, Identität), Ländername(string)

5.1. Excel-Tabelle mit Daten aus der Datenbank füllen

Hier werden wir ein neues Blatt erstellen und es mit Daten aus der Ländertabelle füllen

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-30.cs
TestDbEntities dbContext = new TestDbEntities();
var workbook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\testFile.xlsx");
WorkSheet sheet = workbook.CreateWorkSheet("FromDb");
List<Country> countryList = dbContext.Countries.ToList();
sheet.SetCellValue(0, 0, "Id");
sheet.SetCellValue(0, 1, "Country Name");
int row = 1;
foreach (var item in countryList)
{
    sheet.SetCellValue(row, 0, item.id);
    sheet.SetCellValue(row, 1, item.CountryName);
    row++;
}
workbook.SaveAs("FilledFile.xlsx");
Dim dbContext As New TestDbEntities()
Dim workbook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\testFile.xlsx")
Dim sheet As WorkSheet = workbook.CreateWorkSheet("FromDb")
Dim countryList As List(Of Country) = dbContext.Countries.ToList()
sheet.SetCellValue(0, 0, "Id")
sheet.SetCellValue(0, 1, "Country Name")
Dim row As Integer = 1
For Each item In countryList
	sheet.SetCellValue(row, 0, item.id)
	sheet.SetCellValue(row, 1, item.CountryName)
	row += 1
Next item
workbook.SaveAs("FilledFile.xlsx")
VB   C#

5.2. Füllen Sie die Datenbank mit Daten aus dem Excel-Blatt

Einfügen der Daten in die Tabelle Land in der TestDb-Datenbank

:path=/static-assets/excel/content-code-examples/tutorials/csharp-open-write-excel-file-31.cs
TestDbEntities dbContext = new TestDbEntities();
var workbook = IronXL.WorkBook.Load($@"{Directory.GetCurrentDirectory()}\Files\testFile.xlsx");
WorkSheet sheet = workbook.GetWorkSheet("Sheet3");
System.Data.DataTable dataTable = sheet.ToDataTable(true);
foreach (DataRow row in dataTable.Rows)
{
    Country c = new Country();
    c.CountryName = row[1].ToString();
    dbContext.Countries.Add(c);
}
dbContext.SaveChanges();
Dim dbContext As New TestDbEntities()
Dim workbook = IronXL.WorkBook.Load($"{Directory.GetCurrentDirectory()}\Files\testFile.xlsx")
Dim sheet As WorkSheet = workbook.GetWorkSheet("Sheet3")
Dim dataTable As System.Data.DataTable = sheet.ToDataTable(True)
For Each row As DataRow In dataTable.Rows
	Dim c As New Country()
	c.CountryName = row(1).ToString()
	dbContext.Countries.Add(c)
Next row
dbContext.SaveChanges()
VB   C#

Weitere Lektüre

Um mehr über die Arbeit mit IronXL zu erfahren, sollten Sie sich die anderen Tutorials in diesem Abschnitt und auch die Beispiele auf unserer Homepage ansehen, die den meisten Entwicklern für den Einstieg genügen.

UnserAPI-Referenz enthält spezifische Verweise auf das WorkBook klasse.


Tutorial Schnellzugriff

Brand Visual Studio related to Tutorial Schnellzugriff

Dieses Tutorial als C#-Quellcode herunterladen

Der vollständige kostenlose C# for Excel-Quellcode für dieses Tutorial steht als gezippte Visual Studio 2017-Projektdatei zum Download bereit.

Herunterladen

Erkunden Sie dieses Tutorial auf GitHub

Der Quellcode für dieses Projekt ist in C# und VB.NET auf GitHub verfügbar.

Verwenden Sie diesen Code als einfache Möglichkeit, um in nur wenigen Minuten loszulegen. Das Projekt wird als Microsoft Visual Studio 2017 Projekt gespeichert, ist aber mit jeder .NET IDE kompatibel.

Wie man Excel-Dateien in C# öffnet und schreibt auf GitHub
Github Icon related to Tutorial Schnellzugriff
Documentation related to Tutorial Schnellzugriff

API-Referenz für IronXL

Entdecken Sie die API-Referenz für IronXL, die Details zu allen Funktionen, Namespaces, Klassen, Methoden, Feldern und Enums von IronXL enthält.

Ansicht der API-Referenz
Die .NET-Excel-Bibliothek kann die Datenübertragung in und aus Webanwendungen und Geschäftssystemen revolutionieren.

Elijah Williams

Ingenieur für Produktentwicklung

Elijah ist Ingenieur in einem Entwicklungs- und Testteam, das für ein großes Finanzberichtssystem eines Unternehmens verantwortlich ist. Elijah war ein früher Anwender der IronXL Library, die er in den Kern seiner Excel-Berichtsschnittstelle integriert hat.