Przejdź do treści stopki
KORZYSTANIE Z IRONXL

Jak otworzyć plik Excel i zapisać dane w C#

This article will explore the IronXL library to demonstrate how to open a Microsoft Excel file and write data to it in a C# Console Application.

IronXL - An Excel Library

IronXL is a .NET Excel Library that facilitates the creation, reading, and editing of Excel files in C# applications. It offers exceptional performance and accurate output. The library supports all Excel workbook file formats, including XLS, XLSX, XLSM, CSV, and TSV. Additionally, it allows data to be saved or exported in formats such as JSON, HTML, Binary, Byte Array, DataSet, or DataTable.

With IronXL, developers can work with worksheets and cell ranges seamlessly. It offers the ability to edit formulas and easily recalculate them within a sheet. Sorting data based on range, column, or row is straightforward. The library provides features to modify layouts, such as freezing panes, auto-sizing rows/columns, and adding/removing rows/columns.

IronXL also enables the protection of Excel files with user passwords and permissions for editing. Another notable feature is the ability to add, remove, and extract images from Excel worksheets. The library offers a wide range of Excel functions, supporting various cell data formats. These features make IronXL one of the most user-friendly APIs for working with Excel files.

One of the significant advantages of IronXL is that it does not require Microsoft Excel to be installed on the machine, eliminating the need for Office Interop or any other dependencies. It is compatible with multiple platforms and supports .NET 7, 6, and 5. It is also compatible with .NET Core 2 and 3, as well as .NET Framework 4.5 and later versions for working with Excel spreadsheets.

Create a Console Application

The latest version of Visual Studio IDE is recommended to create the application. Visual Studio is the official IDE for C# development, and it is assumed that you have already installed it. If you haven't installed Visual Studio, you can download it from the official Microsoft Visual Studio website.

Follow these steps to create a new project named "DemoApp".

  1. Open Visual Studio and click on Create a New Project

    How to Open Excel File and Write Data in C#, Figure 1: New Project New Project

  2. Select Console Application and Click Next

    How to Open Excel File and Write Data in C#, Figure 2: New Project Type New Project Type

  3. Enter the name of the Project

    How to Open Excel File and Write Data in C#, Figure 3: New Project Name New Project Name

  4. Select the .NET version. Choose the stable version .NET 6.0.

    How to Open Excel File and Write Data in C#, Figure 4: New Project Additional Info New Project Additional Info

Install IronXL Library

Once the project is created, the IronXL library needs to be installed in the project to use it. Follow these steps to install it.

  1. Open Manage NuGet Packages for Solutions either from Solution Explorer or Tools.

    How to Open Excel File and Write Data in C#, Figure 5: NuGet Package Manager Menedżer pakietów NuGet

  2. Browse for IronXL Library and select the current project. Click install.

    How to Open Excel File and Write Data in C#, Figure 6: Search and install the IronXL package in NuGet Package Manager UI Wyszukaj i zainstaluj pakiet IronXL w interfejsie użytkownika NuGet Package Manager

Add the following namespace at the top of Program.cs file

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

Open an Existing Excel File in C

IronXL provides the facility to open an existing Excel file, or you can create a new Excel file. This example is going to open an existing file using C# IronXL.

// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
// Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");
' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
$vbLabelText   $csharpLabel

Now, let's select its first worksheet. You can select a worksheet by index number or by name. The DefaultWorkSheet property can help to get the first sheet.

// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];

// Select worksheet by name 
WorkSheet ws = workBook.GetWorkSheet("Sheet1"); 

// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
// Select worksheet at index 0
WorkSheet workSheet = workBook.WorkSheets[0];

// Select worksheet by name 
WorkSheet ws = workBook.GetWorkSheet("Sheet1"); 

// Get any existing worksheet
WorkSheet firstSheet = workBook.DefaultWorkSheet;
' Select worksheet at index 0
Dim workSheet As WorkSheet = workBook.WorkSheets(0)

' Select worksheet by name 
Dim ws As WorkSheet = workBook.GetWorkSheet("Sheet1")

' Get any existing worksheet
Dim firstSheet As WorkSheet = workBook.DefaultWorkSheet
$vbLabelText   $csharpLabel

The code above gets the first sheet from the Excel workbook. For creating a new Excel file with data, check this code example page.

Now, let's write data to the Excel file using the IronXL object library.

Write Data to Excel File in C

Writing data to an Excel file using IronXL is very easy. There are multiple ways to achieve it, but the simplest method is to use the Excel cell reference.

// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
// Access A1 cell and write the value
workSheet["A1"].Value = "Value using cell reference";
' Access A1 cell and write the value
workSheet("A1").Value = "Value using cell reference"
$vbLabelText   $csharpLabel

It is also possible to write data to a range of cells. The following code writes data from cell B1 to B5.

// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
// Write the same value to cells from B1 to B5
workSheet["B1:B5"].Value = "Range value";
' Write the same value to cells from B1 to B5
workSheet("B1:B5").Value = "Range value"
$vbLabelText   $csharpLabel

We can also fill in the range with a for loop, making it dynamic. Kod wygląda następująco:

// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
    // Write the Dynamic value in column C
    workSheet["C" + i].Value = "Value: " + i;

    // Write the Dynamic value in column D
    workSheet["D" + i].Value = "Value: " + i;
}
// Specify range in which we want to write the values
for (int i = 1; i <= 5; i++)
{
    // Write the Dynamic value in column C
    workSheet["C" + i].Value = "Value: " + i;

    // Write the Dynamic value in column D
    workSheet["D" + i].Value = "Value: " + i;
}
' Specify range in which we want to write the values
For i As Integer = 1 To 5
	' Write the Dynamic value in column C
	workSheet("C" & i).Value = "Value: " & i

	' Write the Dynamic value in column D
	workSheet("D" & i).Value = "Value: " & i
Next i
$vbLabelText   $csharpLabel

Another way of writing data to an Excel file is by using the Replace method.

// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
// Replace the value in cell D5
workSheet["D5"].Replace("Value: 5", "Replaced Value");
' Replace the value in cell D5
workSheet("D5").Replace("Value: 5", "Replaced Value")
$vbLabelText   $csharpLabel

Save an Excel File in C

This section explains how to save the Excel file with newly written content to it.

// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
// Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx");
' Save the updated Excel workbook to a file
workBook.SaveAs("sample.xlsx")
$vbLabelText   $csharpLabel

Pełny kod wygląda następująco:

using System;
using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Select worksheet at index 0
        WorkSheet workSheet = workBook.WorkSheets[0];

        // Access A1 cell and write the value
        workSheet["A1"].Value = "Value using cell reference";

        // Write the same value to cells from B1 to B5
        workSheet["B1:B5"].Value = "Range value";

        // Specify range in which we want to write the values
        for (int i = 1; i <= 5; i++)
        {
            // Write the Dynamic value in column C
            workSheet["C" + i].Value = "Value: " + i;

            // Write the Dynamic value in column D
            workSheet["D" + i].Value = "Value: " + i;
        }

        // Replace the value in cell D5
        workSheet["D5"].Replace("Value: 5", "Replaced Value");

        // Save the updated Excel workbook to a file
        workBook.SaveAs("sample.xlsx");
        Console.WriteLine("Successfully written to Excel File");
    }
}
using System;
using IronXL;

class Program
{
    static void Main(string[] args)
    {
        // Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
        WorkBook workBook = WorkBook.Load("sample.xlsx");

        // Select worksheet at index 0
        WorkSheet workSheet = workBook.WorkSheets[0];

        // Access A1 cell and write the value
        workSheet["A1"].Value = "Value using cell reference";

        // Write the same value to cells from B1 to B5
        workSheet["B1:B5"].Value = "Range value";

        // Specify range in which we want to write the values
        for (int i = 1; i <= 5; i++)
        {
            // Write the Dynamic value in column C
            workSheet["C" + i].Value = "Value: " + i;

            // Write the Dynamic value in column D
            workSheet["D" + i].Value = "Value: " + i;
        }

        // Replace the value in cell D5
        workSheet["D5"].Replace("Value: 5", "Replaced Value");

        // Save the updated Excel workbook to a file
        workBook.SaveAs("sample.xlsx");
        Console.WriteLine("Successfully written to Excel File");
    }
}
Imports System
Imports IronXL

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Supported spreadsheet formats for reading XLSX, XLS, XLSM, XLTX, CSV and TSV
		Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")

		' Select worksheet at index 0
		Dim workSheet As WorkSheet = workBook.WorkSheets(0)

		' Access A1 cell and write the value
		workSheet("A1").Value = "Value using cell reference"

		' Write the same value to cells from B1 to B5
		workSheet("B1:B5").Value = "Range value"

		' Specify range in which we want to write the values
		For i As Integer = 1 To 5
			' Write the Dynamic value in column C
			workSheet("C" & i).Value = "Value: " & i

			' Write the Dynamic value in column D
			workSheet("D" & i).Value = "Value: " & i
		Next i

		' Replace the value in cell D5
		workSheet("D5").Replace("Value: 5", "Replaced Value")

		' Save the updated Excel workbook to a file
		workBook.SaveAs("sample.xlsx")
		Console.WriteLine("Successfully written to Excel File")
	End Sub
End Class
$vbLabelText   $csharpLabel

For more detailed information on how to read Excel file data in C#, have a look at this example.

Output

The output of the file is:

How to Open Excel File and Write Data in C#, Figure 7: The output Excel file Plik Excel z wynikami

Podsumowanie

This article demonstrated how to write data to Excel files in C# using IronXL. IronXL umożliwia bezproblemową pracę z istniejącymi plikami Excel. It also allows you to create new Excel files and write data to it with easy syntax. IronXL can also be used to read Excel files without the Microsoft Excel application installed. To read data from Excel files you can see this code example page.

IronXL jest bezpłatny do celów programistycznych, a na cele komercyjne można uzyskać licencję. You can also try the IronXL free trial for commercial use.

Często Zadawane Pytania

Jak otworzyć plik Excel w języku C# bez użycia Interop?

Możesz otworzyć plik Excel w języku C# bez użycia Interop, korzystając z biblioteki IronXL. IronXL pozwala na wydajną obsługę plików Excel bez konieczności instalowania programu Microsoft Excel, zwiększając wydajność i kompatybilność.

Jak zapisać dane w określonej komórce pliku Excel przy użyciu języka C#?

Korzystając z IronXL, można zapisać dane w określonej komórce pliku Excel, uzyskując dostęp do skoroszytu, wybierając arkusz, a następnie używając odwołań do komórek w celu przypisania wartości do wybranych komórek.

Jakie są zalety korzystania z IronXL w porównaniu z Office Interop do obsługi plików Excel?

IronXL oferuje kilka zalet w porównaniu z Office Interop, w tym brak zależności od instalacji programu Microsoft Excel, lepszą wydajność, kompatybilność międzyplatformową oraz obsługę różnych formatów plików Excel, takich jak XLS, XLSX i CSV.

Czy za pomocą tej biblioteki mogę edytować formuły w plikach Excel?

Tak, IronXL umożliwia edycję formuł w plikach Excel. Można modyfikować istniejące formuły lub wstawiać nowe przy użyciu prostej składni, którą biblioteka IronXL przetwarza wydajnie.

W jaki sposób IronXL obsługuje różne formaty plików Excel?

IronXL obsługuje wiele formatów plików Excel, takich jak XLS, XLSX, XLSM, CSV i TSV, umożliwiając płynne tworzenie, odczytywanie i edytowanie tych plików w aplikacji napisanej w języku C#.

Czy można zabezpieczyć plik Excel za pomocą IronXL?

Tak, IronXL oferuje funkcje ochrony plików Excel poprzez ustawianie haseł użytkowników i uprawnień, zapewniając bezpieczeństwo danych i kontrolowany dostęp.

Jak mogę zintegrować bibliotekę IronXL z moim projektem w języku C#?

Aby zintegrować IronXL z projektem C#, można użyć menedżera pakietów NuGet w Visual Studio. Wystarczy wyszukać IronXL i dodać go do projektu, aby zacząć korzystać z jego funkcji.

Jakie platformy obsługuje IronXL?

IronXL obsługuje wiele platform, w tym .NET 5, 6 i 7, a także .NET Core i Framework, co czyni go wszechstronnym wyborem dla różnych środowisk programistycznych.

Czy mogę korzystać z IronXL za darmo?

IronXL jest bezpłatny do celów programistycznych. Jednak do użytku komercyjnego wymagana jest licencja. Dostępna jest bezpłatna wersja próbna, umożliwiająca przetestowanie funkcji biblioteki IronXL w środowisku komercyjnym.

Jak mogę wyeksportować dane z Excela do formatu JSON za pomocą IronXL?

IronXL umożliwia eksportowanie danych z Excela do formatu JSON poprzez konwersję arkusza lub określonych zakresów danych na ciągi JSON, które następnie mogą być wykorzystywane w aplikacjach wymagających danych JSON.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie