C# Excel Interop Workaround
Birçok proje Excel'i net bir şekilde iletişim için kullanır, ancak Microsoft.Office.Interop.Excel kullanıyorsanız, muhtemelen birçok karmaşık kod satırıyla karşılaşmak zorunda kaldınız. Bu eğitimde, C# Excel Interop için IronXL kullanacağız, böylece projeinizi tamamlamak için Interop kullanmanıza gerek kalmayacak. Excel dosya verilerini kullanabilir, Excel dosyaları oluşturabilir, düzenleyebilir ve tümünü C# programlama ile manipüle edebilirsiniz.
C# Excel - Interop Yok
- Excel Interop Olmayan Kütüphaneyi İndirin
- C# içinde Excel dosyasına erişin
- Yeni bir Excel dosyası oluşturun ve programatik olarak veri ekleyin
- Mevcut dosyaları değiştirin, hücre değerlerini güncelleyin ve değiştirin, satırları kaldırın ve daha fazlasını yapın
Excel Interop'u Alternatif Olarak Nasıl Kullanılır
- Excel dosyalarını işlemek için bir Excel kütüphanesi yükleyin.
Workbookaçın ve mevcut Excel dosyasını ekleyin.- Varsayılan Çalışma Sayfasını ayarlayın.
- Excel Çalışma Kitabından değeri okuyun.
- Değeri işleyin ve gösterin.
Adim 1
1. IronXL Kütüphanesini İndir
IronXL Kütüphanesini İndir veya ücretsiz kütüphaneye erişmek için NuGet ile yükleyin ve ardından bu eğitimi Interop olmadan Excel kullanarak adım adım çalışarak izleyin. Projeiniz ile canlı olmak istiyorsanız lisanslar mevcuttur.
Install-Package IronXl.Excel
Nasıl Yapılır Eğitimi
2. Excel Dosya Verisine Erişim
İşletme uygulamaları geliştirmek için, Excel dosyalarından veri elde etmeyi ve çeşitli gereksinimlere göre onları programatik bir şekilde manipüle etmeyi kolay ve mükemmel bir şekilde sağlamamız gerekir. IronXL ile, belirli bir Excel dosyasını okumak için erişim sağlayan WorkBook.Load() işlevini kullanın.
WorkBook'a eriştikten sonra, daha sonra WorkBook.GetWorkSheet() işlevini kullanarak belirli bir WorkSheet seçebilirsiniz. Artık tüm Excel dosya verilerine sahipsiniz. Bu işlevleri bir C# projesinde Excel dosya verilerini almak için nasıl kullandığımızı gösteren aşağıdaki örneğe bakın.
// 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
Bu kod, aşağıdaki sonucu üretecektir:
Excel dosyası şu şekilde görünmektedir:
Excel dosyamız sample.xlsx olduğunu, A5 hücresinde small business olduğunu görebiliyoruz. B2 ve B10'dan diğer değerler aynı ve çıktıda görüntüleniyor.
DataSet ve DataTables
Bu talimatları kullanarak Excel dosyaları ile bir veri seti ve veri tabloları olarak da çalışabiliriz.
// 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)
Excel DataSet ve DataTables ile nasıl çalışılacağı hakkında daha fazla okuyabilir, süreçle ilgili daha fazla kod örnekleri ve açıklamalar bulabilirsiniz.
Şimdi, C# projemizde yeni bir Excel dosyası oluşturmakla ilgili bir başka yönü göreceğiz.
3. Yeni Excel Dosyası Oluştur
C# projemizde kolayca yeni bir Excel elektronik tablosu oluşturabilir ve içine programatik olarak veri ekleyebiliriz. Bunu gerçekleştirmek için, IronXL yeni bir Excel dosyası oluşturan WorkBook.Create() işlevini sağlar.
Daha sonra ihtiyaç duyulan kadar çok WorkSheets oluşturmak için WorkBook.CreateWorkSheet() işlevini kullanabiliriz.
Bundan sonra verileri aşağıda gösterildiği gibi ekleyebiliriz:
// 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
Yukarıdaki kod, NewExcelFile.xlsx adıyla yeni bir Excel dosyası oluşturacak ve hücre adreslerinde A1 ve B2 yeni veriler ekleyip sırasıyla New Value A1 ve New Value B2 değerlerini koyacaktır. Bu kurulumla aynı şekilde, gerektiği kadar veri ekleyebilirsiniz.
Not: Yeni bir Excel dosyası oluşturuyorsanız veya mevcut birini değiştiriyorsanız, dosyayı yukarıdaki örnekte gösterildiği gibi kaydetmeyi unutmayın.
Yeni Excel Elektronik Tabloları Oluşturmayı C# ile daha derinlemesine inceleyin ve kodu projenizde deneyin.
4. Mevcut Excel Dosyasını Değiştir
Var olan Excel dosyalarını değiştirebilir ve programatik olarak güncellenmiş veriler ekleyebiliriz. Excel dosya değişikliklerinde aşağıdaki yönleri göreceğiz:
- Hücre değerini güncelleyin
- Eski değerleri yenileriyle değiştirin
- Satır veya sütunları kaldırın
Yukarıdaki konuları C# projemizde nasıl uygulayacağımızı görelim.
Hücre Değerini Güncelle
Mevcut bir Excel çalışma sayfasının hücre değerini güncellemek çok basittir. Projede Excel dosyasına erişin ve Çalışma Sayfasını belirtin, ardından aşağıdaki örnekte gösterildiği gibi verisini güncelleyin:
// 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
Yukarıdaki kod, A3 hücresindeki değeri New Value of A3 ile güncelleyecektir.
Statik bir değerle birden fazla hücreyi de güncelleyebiliriz, aralık fonksiyonunu kullanarak:
ws["A3:C3"].Value = "New Value";
ws["A3:C3"].Value = "New Value";
ws("A3:C3").Value = "New Value"
Bu, 3 numaralı satırın değerini, Excel dosyasında New Value ile A3 ve C3 hücrelerinden güncelleyecektir.
C#'ta Aralık Fonksiyonunun nasıl kullanıldığını bu örneklerle öğrenin.
Hücre Değerlerini Değiştir
IronXL'ın güçlü yönlerinden biri, mevcut Excel dosyalarında old values yerine kolayca new values koyabilme yeteneğidir ve aşağıdaki tüm yönleri kapsar:
- Tam bir Çalışma Sayfasının değerlerini değiştirin:
ws.Replace("old value", "new value");
ws.Replace("old value", "new value");
ws.Replace("old value", "new value")
- Belirli bir satırın değerlerini değiştirin:
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows[RowIndex].Replace("old value", "new value");
ws.Rows(RowIndex).Replace("old value", "new value")
- Belirli bir sütunun değerlerini değiştirin:
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns[ColumnIndex].Replace("old value", "new Value");
ws.Columns(ColumnIndex).Replace("old value", "new Value")
- Belirli bir aralıktaki değerleri değiştirin:
ws["From:To"].Replace("old value", "new value");
ws["From:To"].Replace("old value", "new value");
ws("From:To").Replace("old value", "new value")
Değerleri değiştirmek için yukarıdaki fonksiyonları C# Projemizde nasıl kullanacağınızı açıkça görmek için bir örnek inceleyelim. Bu örnekte, belirli bir aralıktaki bir değeri değiştirmek için değiştirme fonksiyonunu kullanacağız.
// 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
Yukarıdaki kod, Normal değerini B5 ve G5 aralığında Good ile değiştirecek ve diğer WorkSheet'te aynı kalacaktır. IronXL'in bu fonksiyonunu kullanarak Bir Aralıktaki Excel Hücre Değerlerini Düzenleme hakkında daha fazla bilgi edinin.
Excel Dosyasında Satırları Kaldır
Uygulama geliştirmede, bazen mevcut Excel dosyalarının tüm satırlarını programatik olarak kaldırmamız gerekir. Bu görev için, IronXL'ın Remove() işlevini kullanıyoruz. İşte bir örnek:
// 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
Yukarıdaki kod sample.xlsx'nın 2 numaralı satırını kaldıracaktır.
Eğitim Hızlı Erişim
IronXL Referansı
IronXL'deki tüm fonksiyonlar, özellikler, sınıflar ve ad alanları hakkında daha fazla bilgi edinmek için API Referansını okuyun.
IronXL ReferansıSıkça Sorulan Sorular
Interop kullanmadan C# içinde bir Excel dosyasını nasıl okuyabilirim?
Interop gerektirmeden C# içinde Excel dosyalarını okumak için IronXL kullanabilirsiniz. Dosyayı WorkBook.Load() fonksiyonu ile yükleyin ve sayfaya WorkBook.GetWorkSheet() ile erişin.
C# içinde programatik olarak yeni bir Excel dosyası oluşturma süreci nedir?
IronXL ile WorkBook.Create() methodunu kullanarak yeni bir Excel dosyası yaratabilir ve ardından WorkSheet.CreateWorkSheet() ile buna veri ekleyebilirsiniz.
Interop kullanmadan C# içinde Excel dosyalarını değiştirmek mümkün mü?
Evet, IronXL, Interop olmadan hücre değerlerini güncelleyerek, eski değerleri değiştirerek ve satır veya sütunları doğrudan kaldırarak Excel dosyalarını değiştirmenize olanak tanır.
IronXL kullanarak bir Excel sayfasındaki belirli bir hücre değerini nasıl güncelleyebilirim?
Bir hücre değerini güncellemek için çalışma sayfanızı WorkBook.GetWorkSheet() kullanarak yükleyin, hücreye yeni bir değer atayın ve ardından değişikliklerinizi kaydedin.
IronXL ile bir hücre aralığındaki değerleri değiştirebilir miyim?
IronXL, bir sayfa veya belirli bir aralık nesnesi üzerinde Replace() fonksiyonunu kullanarak aralıktaki değerleri değiştirmenize izin verir.
Microsoft.Office.Interop.Excel'e kıyasla IronXL'i kullanmanın avantajları nelerdir?
IronXL, karmaşık Interop kod ihtiyaçını azaltarak, daha kolay kullanılabilir bir API sağlayarak ve daha iyi performans ve güvenilirlik sunarak Excel dosyası manipülasyonunu basitleştirir.
IronXL kullanarak bir Excel dosyasından bir satırı nasıl kaldırabilirim?
IronXL'de, çalışma sayfasındaki belirlenmiş satır nesnesi üzerinde Remove() fonksiyonunu kullanın.
IronXL, Excel dosyalarını DataSet'lere ve DataTable'lara dönüştürmeyi destekliyor mu?
Evet, IronXL, çalışma kitaplarını DataSet'lere ve çalışma sayfalarını DataTable'lara dönüştürmeyi destekler, bu da daha esnek veri işleme sağlar.
C# projesine IronXL'yi nasıl kurarım?
IronXL'i C# projenize, Iron Software web sitesinden indirerek veya şu komutla NuGet paket yöneticisini kullanarak kurabilirsiniz: Install-Package IronXl.Excel
IronXL büyük Excel dosyaları için uygun mu?
IronXL, büyük Excel dosyalarını verimli bir şekilde işlemek için optimize edilmiştir ve geleneksel Interop yöntemlerine kıyasla hızlı işleme hızları ve minimum bellek kullanımı sunar.



