Jak korzystać z Excel Interop w C# Alternatywnie

C# Excel Interop Workaround

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

Wiele projektów używa Excela do jasnej komunikacji, jednak jeśli używasz Microsoft.Office.Interop.Excel, to prawdopodobnie musiałeś napotkać wiele skomplikowanych linii kodu. W tym poradniku użyjemy biblioteki IronXL jako rozwiązania Interop dla Excela w C#, aby nie musieć używać Interopu do ukończenia projektu. Możesz używać danych z plików Excel, tworzyć pliki Excel, edytować i manipulować wszystkimi przy pomocy programowania w C#.

C# Excel Bez Interop

  • Pobierz Bibliotekę Excel Bez Interop
  • Dostęp do pliku Excel w C#
  • Tworzenie nowego pliku Excel i wstawianie danych programowo
  • Modyfikacja istniejących plików, aktualizacja i zastępowanie wartości komórek, usuwanie wierszy i więcej
How To Work related to C# Excel Interop Workaround

Jak używać Interopu Excel alternatywnie

  1. Zainstaluj bibliotekę Excel do przetwarzania plików Excel.
  2. Otwórz Workbook i dodaj bieżący plik Excel.
  3. Ustaw domyślny arkusz.
  4. Odczytaj wartość z książki roboczej Excel.
  5. Przetwórz i pokaż wartość.

Krok 1

1. Pobierz Bibliotekę IronXL

Pobierz Bibliotekę IronXL lub zainstaluj z NuGet aby uzyskać dostęp do darmowej biblioteki, a następnie postępuj krok po kroku aby przejść przez ten poradnik dotyczący używania Excela bez Interopu. Licencje dostępne, jeśli chcesz uruchomić projekt.

Install-Package IronXl.Excel

Poradnik "Jak to zrobić"

2. Dostęp do Danych z Pliku Excel

Aby rozwijać aplikacje biznesowe, potrzebujemy łatwego i doskonałego dostępu do danych z plików Excel oraz możliwości ich manipulacji programowej zgodnie z różnymi wymaganiami. Z IronXL, użyj funkcji WorkBook.Load(), która daje dostęp do odczytu konkretnego pliku Excel.

Po uzyskaniu dostępu do WorkBook, możesz wybrać konkretny WorkSheet używając funkcji WorkBook.GetWorkSheet(). Teraz masz dostępne wszystkie dane z pliku Excel. Zobacz poniższy przykład, jak użyliśmy tych funkcji, aby uzyskać dane z pliku Excel w projekcie C#.

// Import the IronXL library to access its functionality
using IronXL;

static void Main(string[] args)
{
    // Access Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");
    // Access WorkSheet of Excel file
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Get a specific cell value, convert it to a string, and print it
    string a = ws["A5"].Value.ToString();
    Console.WriteLine("Getting Single Value:\n\n   Value of Cell A5: {0}", a);

    Console.WriteLine("\nGetting Many Cells Value using Loop:\n");
    // Get multiple cell values using range function and iterate through them
    foreach (var cell in ws["B2:B10"])
    {
        Console.WriteLine("   Value is: {0}", cell.Text);
    }

    Console.ReadKey(); // Pause the console to view output
}
// Import the IronXL library to access its functionality
using IronXL;

static void Main(string[] args)
{
    // Access Excel file
    WorkBook wb = WorkBook.Load("sample.xlsx");
    // Access WorkSheet of Excel file
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Get a specific cell value, convert it to a string, and print it
    string a = ws["A5"].Value.ToString();
    Console.WriteLine("Getting Single Value:\n\n   Value of Cell A5: {0}", a);

    Console.WriteLine("\nGetting Many Cells Value using Loop:\n");
    // Get multiple cell values using range function and iterate through them
    foreach (var cell in ws["B2:B10"])
    {
        Console.WriteLine("   Value is: {0}", cell.Text);
    }

    Console.ReadKey(); // Pause the console to view output
}
' Import the IronXL library to access its functionality
Imports Microsoft.VisualBasic
Imports IronXL

Shared Sub Main(ByVal args() As String)
	' Access Excel file
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	' Access WorkSheet of Excel file
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

	' Get a specific cell value, convert it to a string, and print it
	Dim a As String = ws("A5").Value.ToString()
	Console.WriteLine("Getting Single Value:" & vbLf & vbLf & "   Value of Cell A5: {0}", a)

	Console.WriteLine(vbLf & "Getting Many Cells Value using Loop:" & vbLf)
	' Get multiple cell values using range function and iterate through them
	For Each cell In ws("B2:B10")
		Console.WriteLine("   Value is: {0}", cell.Text)
	Next cell

	Console.ReadKey() ' Pause the console to view output
End Sub
$vbLabelText   $csharpLabel

Ten kod da następujący wynik:

1output related to 2. Dostęp do Danych z Pliku Excel

Plik Excel wygląda tak:

1excel related to 2. Dostęp do Danych z Pliku Excel

Widzimy, że nasz plik Excel, sample.xlsx, ma small business w komórce A5. Pozostałe wartości od B2 do B10 są takie same i wyświetlone w wyniku.

Zestaw Danych i Tabele Danych

Możemy również pracować z plikami Excel jako z zestawami danych i tabelami danych przy pomocy tych wskazówek.

// Access WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Convert workbook to DataSet
DataSet ds = wb.ToDataSet();

// Convert worksheet to DataTable
DataTable dt = ws.ToDataTable(true);
// Access WorkBook and WorkSheet
WorkBook wb = WorkBook.Load("sample.xlsx");
WorkSheet ws = wb.GetWorkSheet("Sheet1");

// Convert workbook to DataSet
DataSet ds = wb.ToDataSet();

// Convert worksheet to DataTable
DataTable dt = ws.ToDataTable(true);
' Access WorkBook and WorkSheet
Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

' Convert workbook to DataSet
Dim ds As DataSet = wb.ToDataSet()

' Convert worksheet to DataTable
Dim dt As DataTable = ws.ToDataTable(True)
$vbLabelText   $csharpLabel

Możesz przeczytać więcej o pracy z Zestawem Danych i Tabelami Danych Excel, co dostarcza więcej przykładów kodu i wyjaśnień procesu.

Teraz zobaczymy inny aspekt, który dotyczy tworzenia nowego pliku Excel w naszym projekcie C#.


3. Tworzenie Nowego Pliku Excel

Możemy łatwo stworzyć nowy arkusz Excel i programowo wstawiać dane do niego w naszym projekcie C#. Aby to osiągnąć, IronXL dostarcza funkcji WorkBook.Create(), która tworzy nowy plik Excel.

Następnie możemy stworzyć tyle Arkuszy, ile potrzeba, używając funkcji WorkBook.CreateWorkSheet().

Po tym możemy również wstawiać dane, jak pokazano w poniższym przykładzie:

// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Create a new WorkBook
    WorkBook wb = WorkBook.Create();

    // Create a new WorkSheet in the workbook
    WorkSheet ws = wb.CreateWorkSheet("sheet1");

    // Insert data into cells
    ws["A1"].Value = "New Value A1";
    ws["B2"].Value = "New Value B2";

    // Save the newly created Excel file
    wb.SaveAs("NewExcelFile.xlsx");
}
// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Create a new WorkBook
    WorkBook wb = WorkBook.Create();

    // Create a new WorkSheet in the workbook
    WorkSheet ws = wb.CreateWorkSheet("sheet1");

    // Insert data into cells
    ws["A1"].Value = "New Value A1";
    ws["B2"].Value = "New Value B2";

    // Save the newly created Excel file
    wb.SaveAs("NewExcelFile.xlsx");
}
' Import the IronXL library
Imports IronXL

Shared Sub Main(ByVal args() As String)
	' Create a new WorkBook
	Dim wb As WorkBook = WorkBook.Create()

	' Create a new WorkSheet in the workbook
	Dim ws As WorkSheet = wb.CreateWorkSheet("sheet1")

	' Insert data into cells
	ws("A1").Value = "New Value A1"
	ws("B2").Value = "New Value B2"

	' Save the newly created Excel file
	wb.SaveAs("NewExcelFile.xlsx")
End Sub
$vbLabelText   $csharpLabel

Powyższy kod utworzy nowy plik Excel o nazwie NewExcelFile.xlsx i wstawi nowe dane w adresach komórek A1 i B2 z wartościami New Value A1 i New Value B2 odpowiednio. Dzięki temu ustawieniu, możesz wstawiać dane w ten sam sposób, tyle ile potrzebujesz.

Uwaga: Jeśli tworzysz nowy plik Excel lub modyfikujesz istniejący, nie zapomnij zapisać pliku, jak pokazano w przykładzie powyżej.

Prześledź głębiej, jak Tworzenie nowych Arkuszy Excel w C# oraz wypróbuj kod w swoim projekcie.


4. Modyfikacja Istniejącego Pliku Excel

Możemy modyfikować istniejące pliki Excel i programowo wstawiać do nich zaktualizowane dane. W modyfikacjach plików Excel zobaczymy następujące aspekty:

  • Aktualizacja wartości komórki
  • Zastępowanie starych wartości nowymi
  • Usuwanie wierszy lub kolumn

Zobaczmy, jak zaimplementować powyższe zagadnienia w naszym projekcie C#.

Aktualizacja Wartości Komórki

Bardzo prosto jest zaktualizować wartość komórki w istniejącym arkuszu Excel. Wystarczy uzyskać dostęp do pliku Excel w projekcie i określić jego Arkusz, a następnie zaktualizować dane, jak pokazano w poniższym przykładzie:

// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Update A3 cell value
    ws["A3"].Value = "New Value of A3";

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Update A3 cell value
    ws["A3"].Value = "New Value of A3";

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL

Shared Sub Main(ByVal args() As String)
	' Access the WorkBook and WorkSheet
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

	' Update A3 cell value
	ws("A3").Value = "New Value of A3"

	' Save the updated Excel file
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

Powyższy kod zaktualizuje wartość komórki A3 do New Value of A3.

Możemy również zaktualizować wiele komórek stałą wartością, używając funkcji zakresu:

ws["A3:C3"].Value = "New Value";
ws["A3:C3"].Value = "New Value";
ws("A3:C3").Value = "New Value"
$vbLabelText   $csharpLabel

To zaktualizuje wiersz numer 3 od komórek A3 do C3 z New Value w pliku Excel.

Dowiedz się więcej o używaniu Funkcji Zakresu w C# z tymi przykładami.

Zastępowanie Wartości Komórek

Jedną z mocnych stron IronXL jest jego zdolność do łatwego zastępowania old values na new values w istniejących plikach Excel, obejmując wszystkie niżej wymienione aspekty:

  • Zastępowanie wartości całego Arkusza:
ws.Replace("old value", "new value");
ws.Replace("old value", "new value");
ws.Replace("old value", "new value")
$vbLabelText   $csharpLabel
  • Zastępowanie wartości konkretnego wiersza:
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows(RowIndex).Replace("old value", "new value")
$vbLabelText   $csharpLabel
  • Zastępowanie wartości konkretnej kolumny:
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns(ColumnIndex).Replace("old value", "new Value")
$vbLabelText   $csharpLabel
  • Zastępowanie wartości w konkretnym zakresie:
ws["From:To"].Replace("old value", "new value");
ws["From:To"].Replace("old value", "new value");
ws("From:To").Replace("old value", "new value")
$vbLabelText   $csharpLabel

Zobaczmy przykład, aby wyraźnie zobaczyć, jak użyć powyższych funkcji w naszym Projekcie C#, aby zastąpić wartości. W tym przykładzie użyjemy funkcji zastępowania, aby zamienić wartość w określonym zakresie.

// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Specify a range from B5 to G5 and replace "Normal" value with "Good"
    ws["B5:G5"].Replace("Normal", "Good");

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Specify a range from B5 to G5 and replace "Normal" value with "Good"
    ws["B5:G5"].Replace("Normal", "Good");

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL

Shared Sub Main(ByVal args() As String)
	' Access the WorkBook and WorkSheet
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

	' Specify a range from B5 to G5 and replace "Normal" value with "Good"
	ws("B5:G5").Replace("Normal", "Good")

	' Save the updated Excel file
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

Powyższy kod zastąpi wartość Normal na Good z B5 do G5, a reszta Arkusza pozostanie niezmieniona. Zobacz więcej o tym, jak Edycja Wartości Komórek Excel w Zakresie z użyciem tej funkcji IronXL.

Usuwanie Wierszy z Pliku Excel

W rozwijaniu aplikacji czasami musimy programowo usuwać całe wiersze istniejących plików Excel. Do tego zadania używamy funkcji Remove() z IronXL. Oto przykład:

// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Remove the row number 2
    ws.Rows[2].Remove();

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
// Import the IronXL library
using IronXL;

static void Main(string[] args)
{
    // Access the WorkBook and WorkSheet
    WorkBook wb = WorkBook.Load("sample.xlsx");
    WorkSheet ws = wb.GetWorkSheet("Sheet1");

    // Remove the row number 2
    ws.Rows[2].Remove();

    // Save the updated Excel file
    wb.SaveAs("sample.xlsx");
}
' Import the IronXL library
Imports IronXL

Shared Sub Main(ByVal args() As String)
	' Access the WorkBook and WorkSheet
	Dim wb As WorkBook = WorkBook.Load("sample.xlsx")
	Dim ws As WorkSheet = wb.GetWorkSheet("Sheet1")

	' Remove the row number 2
	ws.Rows(2).Remove()

	' Save the updated Excel file
	wb.SaveAs("sample.xlsx")
End Sub
$vbLabelText   $csharpLabel

Powyższy kod usunie wiersz numer 2 z sample.xlsx.


Szybki dostęp do samouczka

Odnośnik do IronXL

Przeczytaj Dokumentację API dla IronXL, aby dowiedzieć się więcej o wszystkich funkcjach, funkcjonalnościach, klasach i przestrzeniach nazw.

Odnośnik do IronXL
Documentation related to Szybki dostęp do samouczka

Często Zadawane Pytania

Jak mogę odczytać plik Excel w C# bez użycia Interop?

Możesz użyć IronXL do odczytu plików Excel w języku C# bez konieczności korzystania z Interop. Załaduj plik za pomocą funkcji WorkBook.Load() i uzyskaj dostęp do arkusza za pomocą WorkBook.GetWorkSheet().

Jak wygląda proces programowego tworzenia nowego pliku Excel w języku C#?

Dzięki IronXL można utworzyć nowy plik Excel za pomocą metody WorkBook.Create(), a następnie dodać do niego dane za pomocą WorkSheet.CreateWorkSheet().

Czy można modyfikować pliki Excel w języku C# bez użycia Interop?

Tak, IronXL umożliwia modyfikowanie plików Excel bez użycia Interop poprzez aktualizację wartości komórek, zastępowanie starych wartości oraz bezpośrednie usuwanie wierszy lub kolumn.

Jak zaktualizować wartość konkretnej komórki w arkuszu Excel za pomocą IronXL?

Aby zaktualizować wartość komórki, załaduj arkusz za pomocą funkcji WorkBook.GetWorkSheet(), przypisz nową wartość do komórki, a następnie zapisz zmiany.

Czy za pomocą IronXL mogę zastąpić wartości w zakresie komórek?

IronXL pozwala na zamianę wartości w zakresie za pomocą funkcji Replace() w arkuszu lub na konkretnym obiekcie zakresu.

Jakie są zalety korzystania z IronXL w porównaniu z Microsoft.Office.Interop.Excel?

IronXL upraszcza obsługę plików Excel, zapewniając łatwy w użyciu interfejs API, ograniczając potrzebę stosowania skomplikowanego kodu Interop oraz oferując lepszą wydajność i niezawodność.

Jak mogę usunąć wiersz z pliku Excel za pomocą IronXL?

Aby usunąć wiersz w IronXL, należy użyć funkcji Remove() na określonym obiekcie wiersza w arkuszu.

Czy IronXL obsługuje konwersję plików Excel do formatów DataSet i DataTable?

Tak, IronXL obsługuje konwersję skoroszytów do zestawów danych (DataSets) oraz arkuszy do tabel danych (DataTables), co pozwala na bardziej elastyczną manipulację danymi.

Jak zainstalować IronXL w projekcie C#?

Możesz zainstalować IronXL w swoim projekcie C#, pobierając go ze strony internetowej Iron Software lub korzystając z menedżera pakietów NuGet za pomocą polecenia: Install-Package IronXl.Excel.

Czy IronXL nadaje się do dużych plików Excel?

IronXL jest zoptymalizowany pod kątem wydajnej obsługi dużych plików Excel, oferując szybkie przetwarzanie i minimalne zużycie pamięci w porównaniu z tradycyjnymi metodami Interop.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 1,950,735 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronXl.Excel
uruchom próbkę zobacz, jak Twoje dane stają się arkuszem.