C# Excel-Datei lesen Tutorial

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

von Christian Findlay

In diesem Tutorial wird erklärt, wie man eine Excel-Datei in C# liest und alltägliche Aufgaben wie Datenvalidierung, Datenbankkonvertierung, Web-API-Integrationen und Formeländerungen durchführt. Dieser Artikel verweist auf Codebeispiele, die die IronXL for .NET Excel-Bibliothek verwenden.


Übersicht

IronXL erleichtert das Lesen und Bearbeiten von Microsoft Excel-Dokumenten mit C#. IronXL erfordert weder Microsoft Excel noch eineInterop. In der Tat,IronXL bietet eine schnellere und intuitivere API als Microsoft.Office.Interop.Excel.

IronXL Enthält&Kolon;

  • Engagierte Produktunterstützung durch unsere .NET-Ingenieure
  • Einfache Installation über Microsoft Visual Studio
  • Kostenloser Probetest für die Entwicklung. Lizenzen von $749.

    Das Lesen und Erstellen von Excel-Dateien in C# und VB.NET ist mit der IronXL-Softwarebibliothek einfach.

Lesen von .XLS- und .XLSX-Excel-Dateien mit IronXL

Nachfolgend finden Sie eine Zusammenfassung des gesamten Arbeitsablaufs beim Lesen von Excel-Dateien mit IronXL:

  1. Installieren Sie die IronXL-Excel-Bibliothek. Wir können dies mit unserem NuGet-Paket oder durch Herunterladen der .NET Excel DLL.

  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
:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-1.cs
using IronXL;
using System;
using System.Linq;

// Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
WorkBook workBook = WorkBook.Load("test.xlsx");
WorkSheet workSheet = workBook.WorkSheets.First();

// Select cells easily in Excel notation and return the calculated value
int cellValue = workSheet["A2"].IntValue;

// Read from Ranges of cells elegantly.
foreach (var cell in workSheet["A2:A10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}

// Advanced Operations
// Calculate aggregate values such as Min, Max and Sum
decimal sum = workSheet["A2:A10"].Sum();

// Linq compatible
decimal max = workSheet["A2:A10"].Max(c => c.DecimalValue);
Imports IronXL
Imports System
Imports System.Linq

' Supported spreadsheet formats for reading include: XLSX, XLS, CSV and TSV
Private workBook As WorkBook = WorkBook.Load("test.xlsx")
Private workSheet As WorkSheet = workBook.WorkSheets.First()

' Select cells easily in Excel notation and return the calculated value
Private cellValue As Integer = workSheet("A2").IntValue

' Read from Ranges of cells elegantly.
For Each cell In workSheet("A2:A10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell

' Advanced Operations
' Calculate aggregate values such as Min, Max and Sum
Dim sum As Decimal = workSheet("A2:A10").Sum()

' Linq compatible
Dim max As Decimal = workSheet("A2:A10").Max(Function(c) c.DecimalValue)
VB   C#

Die in den nächsten Abschnitten dieses Tutorials verwendeten Codebeispiele(zusammen mit dem Code des Beispielprojekts) wird mit drei Excel-Beispieltabellen arbeiten(siehe unten zur Veranschaulichung):

Vs Spreadsheets related to Lesen von .XLS- und .XLSX-Excel-Dateien mit IronXL


Tutorial

1. Laden Sie die IronXL C# Bibliothek kostenlos herunter

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

Erster Schritt:
green arrow pointer


Als erstes müssen wir die Bibliothek IronXL.Excel installieren, die das .NET-Framework um Excel-Funktionen erweitert.

Die Installation von IronXL.Excel ist am einfachsten über unser NuGet-Paket möglich, Sie können aber auch dieDLL in Ihr Projekt oder in Ihren globalen Assembly-Cache.

Installieren des IronXL NuGet-Pakets

  1. Klicken Sie in Visual Studio mit der rechten Maustaste auf das Projekt und wählen Sie "Manage NuGet Packages ..."

  2. Suchen Sie nach dem IronXL.Excel-Paket und klicken Sie auf die Schaltfläche Installieren, um es dem Projekt hinzuzufügen

    Ef Nuget related to Installieren des IronXL NuGet-Pakets

    Eine weitere Möglichkeit, die IronXL-Bibliothek zu installieren, ist die Verwendung der NuGet Package Manager Console:

  3. Öffnen Sie die Paketmanager-Konsole

  4. Tippen Sie > Install-Package IronXL.Excel
  PM > Install-Package IronXL.Excel

Außerdem können Siedas Paket auf der NuGet-Website anzeigen

Manuelle Installation

Alternativ können wir auch mit dem Herunterladen der IronXL.NET Excel DLL und die manuelle Installation in Visual Studio.

2. Laden einer Excel-Arbeitsmappe

Diearbeitsbuch klasse stellt ein Excel-Blatt dar. Um eine Excel-Datei mit C# zu öffnen, verwenden wir die Methode WorkBook.Load und geben den Pfad der Excel-Datei an.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-2.cs
WorkBook workBook = WorkBook.Load(@"Spreadsheets\\GDP.xlsx");
Dim workBook As WorkBook = WorkBook.Load("Spreadsheets\\GDP.xlsx")
VB   C#

Beispiel: ExcelToDBProcessor

Jedes WorkBook kann mehrerearbeitsblatt objekte. Jedes dieser Blätter steht für ein einzelnes Excel-Arbeitsblatt im Excel-Dokument. Verwenden Sie dieworkBook.GetWorkSheet methode, um einen Verweis auf ein bestimmtes Excel-Arbeitsblatt abzurufen.


:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-3.cs

Beispiel: ExcelToDB

Neue Excel-Dokumente erstellen

Um ein neues Excel-Dokument zu erstellen, konstruieren Sie ein neues WorkBook-Objekt mit einem gültigen Dateityp.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-4.cs
WorkBook workBook = new WorkBook(ExcelFileFormat.XLSX);
Dim workBook As New WorkBook(ExcelFileFormat.XLSX)
VB   C#

Beispiel: ApiToExcelProcessor

Hinweis: Verwenden Sie ExcelFileFormat.XLS, um ältere Versionen von Microsoft Excel zu unterstützen(95 und früher).

Einem Excel-Dokument ein Arbeitsblatt hinzufügen

Wie bereits erläutert, enthält ein IronXL WorkBook eine Sammlung von einem oder mehreren WorkSheets.

So sieht eine Arbeitsmappe mit zwei Arbeitsblättern in Excel aus.

So sieht eine Arbeitsmappe mit zwei Arbeitsblättern in Excel aus.

Um ein neues WorkSheet zu erstellen, rufen Sie WorkBook.CreateWorkSheet mit dem Namen des Arbeitsblatts auf.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-5.cs
WorkSheet workSheet = workBook.GetWorkSheet("GDPByCountry");
Dim workSheet As WorkSheet = workBook.GetWorkSheet("GDPByCountry")
VB   C#

3. Zugriff auf Zellenwerte

Lesen und Bearbeiten einer einzelnen Zelle

Der Zugriff auf die Werte einzelner Rechenblattzellen erfolgt durch Abruf der gewünschten Zelle aus ihrem WorkSheet. wie unten dargestellt:

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-16.cs
WorkBook workBook = WorkBook.Load("test.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;
IronXL.Cell cell = workSheet["B1"].First();
Dim workBook As WorkBook = WorkBook.Load("test.xlsx")
Dim workSheet As WorkSheet = workBook.DefaultWorkSheet
Dim cell As IronXL.Cell = workSheet("B1").First()
VB   C#

IronXL'szelle klasse stellt eine einzelne Zelle in einer Excel-Tabelle dar. Sie enthält Eigenschaften und Methoden, mit denen der Benutzer direkt auf den Wert der Zelle zugreifen und ihn ändern kann.

Jedes WorkSheet-Objekt verwaltet einen Index von Cell-Objekten, die jedem Zellwert in einem Excel-Arbeitsblatt entsprechen. Im obigen Quellcode verweisen wir auf die gewünschte Zelle durch ihren Zeilen- und Spaltenindex(zelle B1 in diesem Fall) unter Verwendung der Standard-Array-Indexierungssyntax.

Mit einem Verweis auf das Cell-Objekt können wir Daten aus und in eine Tabellenkalkulationszelle lesen und schreiben:

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-17.cs
IronXL.Cell cell = workSheet["B1"].First();
string value = cell.StringValue;   // Read the value of the cell as a string
Console.WriteLine(value);

cell.Value = "10.3289";           // Write a new value to the cell
Console.WriteLine(cell.StringValue);
Dim cell As IronXL.Cell = workSheet("B1").First()
Dim value As String = cell.StringValue ' Read the value of the cell as a string
Console.WriteLine(value)

cell.Value = "10.3289" ' Write a new value to the cell
Console.WriteLine(cell.StringValue)
VB   C#

Lesen und Schreiben eines Bereichs von Zellwerten

Die Klasse "Range" stellt eine zweidimensionale Sammlung von "Cell"-Objekten dar. Diese Sammlung bezieht sich auf einen wörtlichen Bereich von Excel-Zellen. Abrufen von Bereichen durch Verwendung des String-Indexers auf einem WorkSheet-Objekt.

Das Argument text ist entweder die Koordinate einer Zelle(z. B. "A1", wie zuvor gezeigt) oder eine Spanne von Zellen von links nach rechts von oben nach unten(z.B. "B2:E5"). Es ist auch möglich, GetRange auf einem WorkSheet aufzurufen.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-6.cs
Range range = workSheet["D2:D101"];
Dim range As Range = workSheet("D2:D101")
VB   C#

Beispiel: DatenValidierung

Es gibt mehrere Möglichkeiten, die Werte von Zellen innerhalb eines Bereichs zu lesen oder zu bearbeiten. Wenn die Anzahl bekannt ist, verwenden Sie eine For-Schleife.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-7.cs
// Iterate through the rows
for (var y = 2; y <= 101; y++)
{
    var result = new PersonValidationResult { Row = y };
    results.Add(result);

    // Get all cells for the person
    var cells = workSheet[$"A{y}:E{y}"].ToList();

    // Validate the phone number (1 = B)
    var phoneNumber = cells[1].Value;
    result.PhoneNumberErrorMessage = ValidatePhoneNumber(phoneNumberUtil, (string)phoneNumber);

    // Validate the email address (3 = D)
    result.EmailErrorMessage = ValidateEmailAddress((string)cells[3].Value);

    // Get the raw date in the format of Month Day[suffix], Year (4 = E)
    var rawDate = (string)cells[4].Value;
    result.DateErrorMessage = ValidateDate(rawDate);
}
' Iterate through the rows
For y = 2 To 101
	Dim result = New PersonValidationResult With {.Row = y}
	results.Add(result)

	' Get all cells for the person
	Dim cells = workSheet($"A{y}:E{y}").ToList()

	' Validate the phone number (1 = B)
	Dim phoneNumber = cells(1).Value
	result.PhoneNumberErrorMessage = ValidatePhoneNumber(phoneNumberUtil, CStr(phoneNumber))

	' Validate the email address (3 = D)
	result.EmailErrorMessage = ValidateEmailAddress(CStr(cells(3).Value))

	' Get the raw date in the format of Month Day[suffix], Year (4 = E)
	Dim rawDate = CStr(cells(4).Value)
	result.DateErrorMessage = ValidateDate(rawDate)
Next y
VB   C#

Beispiel: DatenValidierung

Formel zu einem Arbeitsblatt hinzufügen

Formel von Cell mit demformel eigentum.

Der folgende Code durchläuft jeden Zustand und gibt in Spalte C einen Gesamtprozentsatz an.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-13.cs
// Iterate through all rows with a value
for (var y = 2 ; y < i ; y++)
{
    // Get the C cell
    Cell cell = workSheet[$"C{y}"].First();

    // Set the formula for the Percentage of Total column
    cell.Formula = $"=B{y}/B{i}";
}
' Iterate through all rows with a value
Dim y = 2
Do While y < i
	' Get the C cell
	Dim cell As Cell = workSheet($"C{y}").First()

	' Set the formula for the Percentage of Total column
	cell.Formula = $"=B{y}/B{i}"
	y += 1
Loop
VB   C#

Beispiel: AddFormulaeProcessor

Tabellenkalkulationsdaten validieren

Verwenden Sie IronXL zur Validierung eines Datenblatts. Das Beispiel DataValidation verwendet libphonenumber-csharp zur Überprüfung von Telefonnummern und nutzt Standard-C#-APIs zur Überprüfung von E-Mail-Adressen und Daten.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-8.cs
// Iterate through the rows
for (var i = 2; i <= 101; i++)
{
    var result = new PersonValidationResult { Row = i };
    results.Add(result);

    // Get all cells for the person
    var cells = worksheet[$"A{i}:E{i}"].ToList();

    // Validate the phone number (1 = B)
    var phoneNumber = cells[1].Value;
    result.PhoneNumberErrorMessage = ValidatePhoneNumber(phoneNumberUtil, (string)phoneNumber);

    // Validate the email address (3 = D)
    result.EmailErrorMessage = ValidateEmailAddress((string)cells[3].Value);

    // Get the raw date in the format of Month Day[suffix], Year (4 = E)
    var rawDate = (string)cells[4].Value;
    result.DateErrorMessage = ValidateDate(rawDate);
}
' Iterate through the rows
For i = 2 To 101
	Dim result = New PersonValidationResult With {.Row = i}
	results.Add(result)

	' Get all cells for the person
	Dim cells = worksheet($"A{i}:E{i}").ToList()

	' Validate the phone number (1 = B)
	Dim phoneNumber = cells(1).Value
	result.PhoneNumberErrorMessage = ValidatePhoneNumber(phoneNumberUtil, CStr(phoneNumber))

	' Validate the email address (3 = D)
	result.EmailErrorMessage = ValidateEmailAddress(CStr(cells(3).Value))

	' Get the raw date in the format of Month Day[suffix], Year (4 = E)
	Dim rawDate = CStr(cells(4).Value)
	result.DateErrorMessage = ValidateDate(rawDate)
Next i
VB   C#

Der obige Code durchläuft jede Zeile der Kalkulationstabelle in einer Schleife und erfasst die Zellen als Liste. Jede validates-Methode überprüft den Wert einer Zelle und gibt eine Fehlermeldung zurück, wenn der Wert ungültig ist.

Dieser Code erstellt ein neues Blatt, gibt Kopfzeilen an und gibt die Ergebnisse der Fehlermeldung aus, so dass es ein Protokoll der ungültigen Daten gibt.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-9.cs
var resultsSheet = workBook.CreateWorkSheet("Results");
resultsSheet["A1"].Value = "Row";
resultsSheet["B1"].Value = "Valid";
resultsSheet["C1"].Value = "Phone Error";
resultsSheet["D1"].Value = "Email Error";
resultsSheet["E1"].Value = "Date Error";
for (var i = 0; i < results.Count; i++)
{
    var result = results[i];
    resultsSheet[$"A{i + 2}"].Value = result.Row;
    resultsSheet[$"B{i + 2}"].Value = result.IsValid ? "Yes" : "No";
    resultsSheet[$"C{i + 2}"].Value = result.PhoneNumberErrorMessage;
    resultsSheet[$"D{i + 2}"].Value = result.EmailErrorMessage;
    resultsSheet[$"E{i + 2}"].Value = result.DateErrorMessage;
}
workBook.SaveAs(@"Spreadsheets\\PeopleValidated.xlsx");
Dim resultsSheet = workBook.CreateWorkSheet("Results")
resultsSheet("A1").Value = "Row"
resultsSheet("B1").Value = "Valid"
resultsSheet("C1").Value = "Phone Error"
resultsSheet("D1").Value = "Email Error"
resultsSheet("E1").Value = "Date Error"
For i = 0 To results.Count - 1
	Dim result = results(i)
	resultsSheet($"A{i + 2}").Value = result.Row
	resultsSheet($"B{i + 2}").Value = If(result.IsValid, "Yes", "No")
	resultsSheet($"C{i + 2}").Value = result.PhoneNumberErrorMessage
	resultsSheet($"D{i + 2}").Value = result.EmailErrorMessage
	resultsSheet($"E{i + 2}").Value = result.DateErrorMessage
Next i
workBook.SaveAs("Spreadsheets\\PeopleValidated.xlsx")
VB   C#

4. Daten mit Entity Framework exportieren

Mit IronXL können Sie Daten in eine Datenbank exportieren oder eine Excel-Tabelle in eine Datenbank konvertieren. Das Beispiel "ExcelToDB" liest eine Tabelle mit dem Bruttoinlandsprodukt nach Ländern und exportiert diese Daten dann in ein SQLite.

Es verwendet EntityFramework, um die Datenbank zu erstellen und die Daten dann Zeile für Zeile zu exportieren.

Fügen Sie die SQLite Entity Framework NuGet-Pakete hinzu.

Ironxl Nuget related to 4. Daten mit Entity Framework exportieren

mit dem "EntityFramework" können Sie ein Modellobjekt erstellen, das Daten in die Datenbank exportieren kann.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-10.cs
public class Country
    {
        [Key]
        public Guid Key { get; set; }
        public string Name { get; set; }
        public decimal GDP { get; set; }
    }
Public Class Country
		<Key>
		Public Property Key() As Guid
		Public Property Name() As String
		Public Property GDP() As Decimal
End Class
VB   C#

Um eine andere Datenbank zu verwenden, installieren Sie das entsprechende NuGet-Paket und suchen Sie das Äquivalent von UseSqLite()

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-11.cs
public class CountryContext : DbContext
    {
        public DbSet<Country> Countries { get; set; }
        public CountryContext()
        {
            //TODO: Make async
            Database.EnsureCreated();
        }
        /// <summary>
        /// Configure context to use Sqlite
        /// </summary>
        /// <param name="optionsBuilder"></param>
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            var connection = new SqliteConnection($"Data Source=Country.db");
            connection.Open();
            var command = connection.CreateCommand();
            //Create the database if it doesn't already exist
            command.CommandText = $"PRAGMA foreign_keys = ON;";
            command.ExecuteNonQuery();
            optionsBuilder.UseSqlite(connection);
            base.OnConfiguring(optionsBuilder);
        }
    }
Public Class CountryContext
	Inherits DbContext

		Public Property Countries() As DbSet(Of Country)
		Public Sub New()
			'TODO: Make async
			Database.EnsureCreated()
		End Sub
		''' <summary>
		''' Configure context to use Sqlite
		''' </summary>
		''' <param name="optionsBuilder"></param>
		Protected Overrides Sub OnConfiguring(ByVal optionsBuilder As DbContextOptionsBuilder)
			Dim connection = New SqliteConnection($"Data Source=Country.db")
			connection.Open()
			Dim command = connection.CreateCommand()
			'Create the database if it doesn't already exist
			command.CommandText = $"PRAGMA foreign_keys = ON;"
			command.ExecuteNonQuery()
			optionsBuilder.UseSqlite(connection)
			MyBase.OnConfiguring(optionsBuilder)
		End Sub
End Class
VB   C#

Erstellen eines "CountryContext", Iteration durch den Bereich, um jeden Datensatz zu erstellen, und dann "SaveAsync", um die Daten an die Datenbank zu übertragen

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-12.cs
public async Task ProcessAsync()
{
    //Get the first worksheet
    var workbook = WorkBook.Load(@"Spreadsheets\\GDP.xlsx");
    var worksheet = workbook.GetWorkSheet("GDPByCountry");
    //Create the database connection
    using (var countryContext = new CountryContext())
    {
        //Iterate through all the cells
        for (var i = 2; i <= 213; i++)
        {
            //Get the range from A-B
            var range = worksheet[$"A{i}:B{i}"].ToList();
            //Create a Country entity to be saved to the database
            var country = new Country
            {
                Name = (string)range[0].Value,
                GDP = (decimal)(double)range[1].Value
            };
            //Add the entity
            await countryContext.Countries.AddAsync(country);
        }
        //Commit changes to the database
        await countryContext.SaveChangesAsync();
    }
}
Public Async Function ProcessAsync() As Task
	'Get the first worksheet
	Dim workbook = WorkBook.Load("Spreadsheets\\GDP.xlsx")
	Dim worksheet = workbook.GetWorkSheet("GDPByCountry")
	'Create the database connection
	Using countryContext As New CountryContext()
		'Iterate through all the cells
		For i = 2 To 213
			'Get the range from A-B
			Dim range = worksheet($"A{i}:B{i}").ToList()
			'Create a Country entity to be saved to the database
			Dim country As New Country With {
				.Name = CStr(range(0).Value),
				.GDP = CDec(CDbl(range(1).Value))
			}
			'Add the entity
			Await countryContext.Countries.AddAsync(country)
		Next i
		'Commit changes to the database
		Await countryContext.SaveChangesAsync()
	End Using
End Function
VB   C#

Beispiel: ExcelToDB

5. Herunterladen von Daten aus einer API in eine Tabellenkalkulation

Der folgende Aufruf macht einen REST-Aufruf mitRestClient.Net. Es lädt JSON herunter und wandelt es in eine "Liste" des Typs RestCountry um. Es ist dann einfach, die einzelnen Länder zu durchlaufen und die Daten von der REST-API in einer Excel-Tabelle zu speichern.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-14.cs
var client = new Client(new Uri("https://restcountries.eu/rest/v2/"));
List<RestCountry> countries = await client.GetAsync<List<RestCountry>>();
Dim client As New Client(New Uri("https://restcountries.eu/rest/v2/"))
Dim countries As List(Of RestCountry) = Await client.GetAsync(Of List(Of RestCountry))()
VB   C#

Beispiel: ApiToExcel

So sehen die JSON-Daten der API aus.

Country Data related to 5. Herunterladen von Daten aus einer API in eine Tabellenkalkulation

Der folgende Code durchläuft die Länder und setzt den Namen, die Bevölkerung, die Region, den NumericCode und die 3 wichtigsten Sprachen in das Arbeitsblatt.

:path=/static-assets/excel/content-code-examples/tutorials/how-to-read-excel-file-csharp-15.cs
for (var i = 2; i < countries.Count; i++)
{
    var country = countries[i];
    //Set the basic values
    workSheet[$"A{i}"].Value = country.name;
    workSheet[$"B{i}"].Value = country.population;
    workSheet[$"G{i}"].Value = country.region;
    workSheet[$"H{i}"].Value = country.numericCode;
    //Iterate through languages
    for (var x = 0; x < 3; x++)
    {
        if (x > (country.languages.Count - 1)) break;
        var language = country.languages[x];
        //Get the letter for the column
        var columnLetter = GetColumnLetter(4 + x);
        //Set the language name
        workSheet[$"{columnLetter}{i}"].Value = language.name;
    }
}
For i = 2 To countries.Count - 1
	Dim country = countries(i)
	'Set the basic values
	workSheet($"A{i}").Value = country.name
	workSheet($"B{i}").Value = country.population
	workSheet($"G{i}").Value = country.region
	workSheet($"H{i}").Value = country.numericCode
	'Iterate through languages
	For x = 0 To 2
		If x > (country.languages.Count - 1) Then
			Exit For
		End If
		Dim language = country.languages(x)
		'Get the letter for the column
		Dim columnLetter = GetColumnLetter(4 + x)
		'Set the language name
		workSheet($"{columnLetter}{i}").Value = language.name
	Next x
Next i
VB   C#

Objektreferenz und Ressourcen

Vielleicht finden Sie auch die IronXL-Klassendokumentation innerhalb der Objektreferenz von großem Wert.

Darüber hinaus gibt es weitere Tutorien, die andere Aspekte von IronXL.Excel beleuchten, darunterErstellen von, Öffnen, Schreiben, Editieren, Speichern und Exportieren XLS-, XLSX- und CSV-Dateien ohne Verwendung von Excel Interop.

Zusammenfassung

IronXL.Excel ist eine reine .NET-Softwarebibliothek zum Lesen einer Vielzahl von Tabellenkalkulationsformaten. Es ist nicht erforderlichMicrosoft Excel installiert werden muss und nicht von Interop abhängig ist.

Wenn Sie die .NET-Bibliothek für das Ändern von Excel-Dateien nützlich finden, könnten Sie auch an folgenden Informationen interessiert seinGoogle Sheets API Client-Bibliothek für .NET, mit dem Sie Google Sheets ändern können.


Tutorial Schnellzugriff

Brand Visual Studio related to Tutorial Schnellzugriff

Dieses Tutorial als C# Quellcode herunterladen

Der vollständige kostenlose C# for Excel Source Code 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.

Excel-Datei in C&num lesen; auf GitHub
Github Icon related to Tutorial Schnellzugriff
Documentation related to Tutorial Schnellzugriff

Ansicht der API-Referenz

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
.NET Solution Director arbeitet mit Microsoft Excel Dokument IO

Christian Findlay

Teamleiter Software-Entwicklung

Christian entwickelt Software für die Gesundheitsbranche und leitet ein Team. Christian hat jahrelange Erfahrung mit der Integration von Systemen aller Art. IronXL ermöglicht es Christian, Daten aus verschiedenen Quellen zu importieren und zu bearbeiten, um sich wiederholende Aufgaben zu automatisieren und Eingabedaten aus Drittanbieterquellen zu validieren.