C#’ta Excel Interop Kullanımı Alternatifleri

C# Excel Interop Workaround

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

Birçok proje, net bir iletişim kurmak için Excel'i kullanır, ancak Microsoft.Office.Interop.Excel kullanıyorsanız, muhtemelen birçok karmaşık kod satırıyla karşılaşmışsınızdır. Bu öğreticide, projenizi tamamlamak için Interop kullanmanıza gerek kalmadan, IronXL'i C# Excel Interop çözümü olarak kullanacağız. Excel dosya verilerini kullanabilir, Excel dosyaları oluşturabilir, düzenleyebilir ve hepsini C# programlama kullanarak yönetebilirsiniz.

C# Excel No Interop

  • Excel No Interop Kütüphanesini İndirin
  • C# ile Excel dosyasına erişin
  • Yeni bir Excel dosyası oluşturun ve verileri programlı olarak 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
How To Work related to C# Excel Interop Workaround

Excel Interop'u Alternatif Olarak Nasıl Kullanılır

Excel dosyalarını işlemek için bir Excel kütüphanesi kurun.

  1. Workbook dosyasını açın ve mevcut Excel dosyasını ekleyin.
  2. Varsayılan Çalışma Sayfasını Ayarlayın.
  3. Değeri Excel Çalışma Kitabından okuyun.
  4. Değerlendirin ve değeri gösterin.

Adım 1

1. IronXL Kütüphanesini İndirin

IronXL kütüphanesini indirin ya da NuGet ile yükleyin ve ücretsiz kütüphaneye erişim sağlayın, ardından Interop kullanmadan Excel ile çalışmayı bu eğitici ile adım adım öğrenin. Projenizi yayına almak isterseniz lisanslar mevcuttur.

Install-Package IronXL.Excel

Nasıl Rehberi

2. Excel Dosya Verilerine Erişim

İş uygulamaları geliştirmek için, Excel dosyalarından verilere kolay ve kusursuz erişim ve çeşitli gereksinimlere göre bunları programatik olarak işleme yeteneğine ihtiyacımız var. IronXL ile, belirli bir Excel dosyasını okumaya erişim sağlayan WorkBook.Load() işlevini kullanın.

WorkBook'a eriştikten sonra, WorkBook.GetWorkSheet() işlevini kullanarak belirli bir WorkSheet'i seçebilirsiniz. Artık tüm Excel dosyası verileri mevcut. Aşağıdaki örnekte, bu fonksiyonları kullanarak bir C# projesinde Excel dosya verilerini nasıl elde ettiğimizi görebilirsiniz.

// 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

Bu kod aşağıdaki sonucu üretecektir:

1output related to 2. Excel Dosya Verilerine Erişim

Excel dosyası böyle göründüğünde:

1excel related to 2. Excel Dosya Verilerine Erişim

Excel dosyamızda, sample.xlsx, small business hücresinde A5 olduğunu görebiliriz. B2 ile B10 arasındaki diğer değerler aynıdır ve çıktıda görüntülenir.

DataSet ve DataTables

Excel dosyalarıyla bir veri kümesi ve veri tabloları olarak da bu yönergeleri kullanarak ç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)
$vbLabelText   $csharpLabel

Excel DataSet ve DataTables ile çalışma hakkında daha fazla bilgiye, süreçle ilgili daha fazla kod örneği ve açıklama sağlayan buradan ulaşabilirsiniz.

Şimdi, C# projemizde yeni bir Excel dosyası oluşturma konusunu ele alacağız.


3. Yeni Excel Dosyası Oluşturma

C# projemizde programlı olarak yeni bir Excel çalışma sayfası oluşturabilir ve veri ekleyebiliriz. Bunu başarmak için IronXL, yeni bir Excel dosyası oluşturan WorkBook.Create() işlevini sunar.

Daha sonra WorkBook.CreateWorkSheet() işlevini kullanarak gerektiği kadar Çalışma Sayfası oluşturabiliriz.

Bundan sonra, aşağıdaki örnekte gösterildiği gibi veri de 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
$vbLabelText   $csharpLabel

Yukarıdaki kod, NewExcelFile.xlsx adında yeni bir Excel dosyası oluşturacak ve A1 ve B2 hücre adreslerine sırasıyla New Value A1 ve New Value B2 değerlerini ekleyecektir. Bu kurulumla, ihtiyacınız olduğu kadar veri ekleyebilirsiniz.

Not: Yeni bir Excel dosyası oluşturuyorsanız veya mevcut bir dosyayı değiştiriyorsanız, dosyayı yukarıdaki örnekte gösterildiği gibi kaydetmeyi unutmayın.

Merak ettiğiniz konular hakkında daha fazla bilgi edinin: C# kullanarak yeni Excel Çalışma Sayfaları oluşturun ve kodu projenizde deneyin.


4. Mevcut Excel Dosyasını Değiştirin

Mevcut Excel dosyalarını değiştirebilir ve güncellenmiş verileri programlı bir şekilde içine ekleyebiliriz. Excel dosyası 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# projemize nasıl uygulayacağımızı görelim.

Hücre Değerini Güncelleme

Mevcut bir Excel e-tablonun 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 verilerini 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
$vbLabelText   $csharpLabel

Yukarıdaki kod, A3 hücresinin değerini New Value of A3 ile güncelleyecektir.

Aralık fonksiyonunu kullanarak statik bir değerle birden fazla hücreyi de güncelleyebiliriz:

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

Bu, Excel dosyasındaki A3 hücresinden C3 hücresine 3. satır numarasını New Value ile güncelleyecektir.

C#'deki Aralık Fonksiyonu kullanımı hakkında daha fazla bilgi edinmek için bu örnekleri inceleyin.

Hücre Değerlerini Değiştirin

IronXL'in güçlü yönlerinden biri, mevcut Excel dosyalarında old values ifadesini new values ile kolayca değiştirebilme yeteneğidir. Bu, aşağıdaki tüm yönleri kapsar:

  • Tüm 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")
$vbLabelText   $csharpLabel
  • 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")
$vbLabelText   $csharpLabel
  • 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")
$vbLabelText   $csharpLabel
  • 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")
$vbLabelText   $csharpLabel

C# Projemizde yukarıdaki fonksiyonları kullanarak değerleri nasıl değiştirebileceğimizi net bir şekilde görmek için bir örnek görelim. Bu örnekte, belirli bir aralıktaki bir değeri değiştirmek için replace 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
$vbLabelText   $csharpLabel

Yukarıdaki kod, Normal değerini Good ile değiştirecek ve B5'den G5'e kadar olan kısım değişecek, WorkSheet'in geri kalanı ise aynı kalacaktır. Daha fazla bilgi için, IronXL'in bu fonksiyonu kullanarak Excel Hücre Değerlerini Bir Aralıkta Düzenleme konusuna bakın.

Excel Dosyasından Satırları Kaldırma

Uygulama geliştirmede, bazen Excel dosyalarının mevcut satırlarını program aracılığıyla kaldırmamız gerekebilir. Bu görev için IronXL'nin 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
$vbLabelText   $csharpLabel

Yukarıdaki kod, sample.xlsx'nin 2 numaralı satırını kaldıracaktır.


Hızlı Öğretici Erişimi

IronXL Referansı

IronXL kütüphanesindeki tüm fonksiyonlar, özellikler, sınıflar ve ad alanları hakkında daha fazla bilgi edinmek için API Referansını okuyun.

IronXL Referansı
Documentation related to Hızlı Öğretici Erişimi

Sıkça Sorulan Sorular

Interop kullanmadan C# içerisinde bir Excel dosyasını nasıl okuyabilirim?

IronXL'i kullanarak, C# içinde Interop gerektirmeden Excel dosyalarını okuyabilirsiniz. WorkBook.Load() işlevini kullanarak dosyayı yükleyin ve WorkBook.GetWorkSheet() ile çalışma sayfasına erişin.

C#'ta programatik olarak yeni bir Excel dosyası oluşturma süreci nedir?

IronXL ile, WorkBook.Create() yöntemi kullanarak yeni bir Excel dosyası oluşturabilir ve ardından WorkSheet.CreateWorkSheet() ile veri ekleyebilirsiniz.

C# içinde Interop kullanmadan Excel dosyalarını değiştirmek mümkün mü?

Evet, IronXL doğrudan hücre değerlerini güncelleyerek, eski değerleri değiştirerek ve satır veya sütunlar veya belirli aralıkları kaldırarak Interop olmadan Excel dosyalarını değiştirme kabiliyeti sağlar.

IronXL kullanarak bir Excel sayfasındaki belirli bir hücre değerini nasıl güncelleyebilirim?

Hücre değerini güncellemek için, WorkBook.GetWorkSheet() kullanarak çalışma sayfanızı yükleyin, hücreye yeni bir değer atayın ve ardından değişikliklerinizi kaydedin.

IronXL ile hücre aralığında değerleri değiştirebilir miyim?

IronXL, bir çalışma sayfası veya belirli bir aralık nesnesi üzerindeki Replace() işlevini kullanarak bir aralık içindeki değerleri değiştirmenize olanak tanır.

Microsoft.Office.Interop.Excel üzerinde IronXL kullanmanın avantajları nelerdir?

IronXL, kolay kullanımlı bir API sunarak, karmaşık Interop kodlarına olan ihtiyacı azaltır ve daha iyi performans ve güvenilirlik sağlar.

IronXL kullanarak bir Excel dosyasından bir satırı nasıl çıkarabilirim?

IronXL ile, çalışma sayfası içindeki belirli bir satır nesnesi üzerinde bulunan Remove() işlevini kullanarak bir satırı çıkarabilirsiniz.

IronXL, Excel dosyalarını DataSets ve DataTables'ye dönüştürmeyi destekliyor mu?

Evet, IronXL, çalışma kitaplarının DataSets'e ve çalışma sayfalarının DataTables'e dönüştürülmesini destekler, bu da daha esnek veri manipulasyonu sağlar.

IronXL'yi bir C# projesine nasıl kurarım?

IronXL'i C# projenizde Iron Software web sitesinden indirerek veya NuGet paket yöneticisini kullanarak Install-Package IronXL.Excel komutuyla kurabilirsiniz.

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, geleneksel Interop yöntemlerine kıyasla hızlı işleme hızları ve minimal bellek kullanımı sunar.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 2,052,917 | Sürüm: 2026.6 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronXL.Excel
örnek çalıştır verinizin bir hesap tablosu haline geldiğini izleyin.