C# Excel Interop Workaround
Wiele projektów wykorzystuje program Excel do jasnej komunikacji, ale jeśli korzystasz z Microsoft.Office.Interop.Excel, prawdopodobnie musiałeś zmierzyć się z wieloma skomplikowanymi wierszami 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. With IronXL, należy użyć funkcji WorkBook.Load(), która zapewnia dostęp do odczytu określonego pliku Excel.
Po uzyskaniu dostępu do skoroszytu można wybrać konkretny arkusz za pomocą 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, zawiera small business w komórce A5. Pozostałe wartości od B2 do B10 są takie same i są wyświetlane w wynikach.
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 udostępnia funkcję WorkBook.Create(), która tworzy nowy plik Excel.
Następnie możemy utworzyć dowolną liczbę arkuszy roboczych przy użyciu 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 komórkach o adresach A1 oraz B2 o wartościach New Value A1 i New Value B2. 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 na 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"
Spowoduje to aktualizację wiersza nr 3 z komórek A3 do C3 na 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 możliwość łatwego zastąpienia old values przez new values w istniejących plikach Excel, obejmując wszystkie poniższe 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 wartością Good od B5 do G5, a pozostała część arkusza pozostanie bez zmian. 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 wykonania tego zadania używamy funkcji Remove() programu 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 o numerze 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 skomplikówanego 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.



