C# Excel Interop Workaround
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
Jak używać Interopu Excel alternatywnie
- Zainstaluj bibliotekę Excel do przetwarzania plików Excel.
- Otwórz
Workbooki dodaj bieżący plik Excel. - Ustaw domyślny arkusz.
- Odczytaj wartość z książki roboczej Excel.
- 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
Ten kod da następujący wynik:
Plik Excel wygląda tak:
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)
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
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
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"
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")
- 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")
- 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")
- 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")
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
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
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 IronXLCzę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.



