Altbilgi içeriğine atla
DIğER BILEşENLERLE KARşıLAşTıRıN

IronXL ile Syncfusion Excel Arasındaki Bir Karşılaştırma

Excel'i programlı olarak manipüle etmek geliştiriciler için zor olabilir. Microsoft Excel dosyalarını düzenlemeye çalışırken birkaç sorun ortaya çıkmaktadır. Ana sorunlar, kullanıcı arayüzündeki zorluklar ve belgeleme eksikliği olup, bir Excel dosyasını ele almayı zorlaştırır. Ancak neyse ki, artık yetenekli programcılar tarafından yazılmış bazı Excel kütüphanelerimiz var. Bu kütüphaneler, Microsoft Excel dosya verilerini düzenlemede yardımcı olmaktadır. Burada iki Excel C# kütüphanesini tartışacağım:

  • IronXL: C# Excel Kütüphanesi
  • Syncfusion Excel Çerçevesi

Bu kütüphanelerin karşılaştırmasıyla başlayalım.

IronXL: C# Excel Kütüphanesi

IronXL, Iron Software tarafından geliştirilen C# kodlarından oluşan bir .NET Excel kütüphanesidir ve Excel belgelerini programlı olarak manipüle etmek için kullanılır. IronXL, .NET framework üzerinde yazılmıştır ve normalde Microsoft Excel gerektiren uygulamaları geliştirme sürecini basitleştirir.

IronXL, bir Excel çalışma kitabından veri okuma ve yazma, çalışma kitabı objelerini manipüle etme, harici veri kaynaklarına erişim ve bir Excel çalışma kitabına veri yükleme için kullanılacak sınıflar, metodlar ve özellikler seti sağlar.

IronXL'nin özelliklerine bir göz atalım.

IronXL'nin Özellikleri

IronXL'yi diğer kütüphanelerden öne çıkaran birçok özelliği vardır.

Veri Yükleme, Okuma ve Düzenleme

IronXL kullanarak XLS, XLSX, XLST, XLSM, CSV ve TSV gibi elektronik tablo belgelerinden veri yükleyebilir, okuyabilir ve düzenleyebiliriz. IronXL, bu elektronik tablo belgelerini oluşturmak, okumak ve düzenlemek için çok basit ve kolay hatırlanabilir işlevler sağlar. Belgeler üzerinde tam kontrol sağlar.

Grafikler Oluşturma

IronXL, özelleştirilmiş grafikler ile elektronik tablolar oluşturmak için geniş bir işlev yelpazesine sahiptir. Onlar için iyi bir API belgelemesi vardır.

Kaydetme ve Dışa Aktarma

IronXL, belgeleri birden fazla formatta kaydetmek ve dışa aktarmak için harikadır. IronXL, Excel dosyalarını XLS, XLSX, XLST, XLSM, CSV, TSV ve JSON dosya formatlarına dışa aktarma veya dönüştürme kolaylığı sağlar.

Formüllerle Çalışma

IronXL, Excel dosyalarında formüllerle çalışmayı destekler. İhtiyacımıza göre herhangi bir formül oluşturup herhangi bir hücreye uygulayabiliriz. IronXL, formüllerle çalışmamıza yardımcı olacak mükemmel ve basit işlevler sunar.

Hücre Veri Biçimleri

Excel kullanıcıları genellikle Excel hücrelerinde formatlama kullanmak zorundadır. IronXL, gelişmiş koşullu biçimlendirme özelliklerini destekler. IronXL, hücre veri biçimlendirme konusunda basit ve kullanımı kolay işlevlerle yardım etmektedir. IronXL, Microsoft Excel tarafından desteklenen tüm formatları destekler. Verileri şu formatlarla biçimlendirebilirsiniz:

  • Metin
  • Sayı
  • Formüller
  • Tarihler
  • Para birimi
  • Yüzdeler
  • Bilimsel
  • Zaman
  • Özel Formatlar

Hücre Stili

Hücre stili, önemli verileri ayırt etmeye yardımcı olan Microsoft Excel'in önemli bir özelliğidir. Çok kullanışlıdır ve IronXL de bu özelliği destekler. IronXL işlevlerini kullanarak yazı tipi stili, yazı tipi boyutu, arka plan deseni, çerçeve ve hizalama değiştirebilirsiniz.

Syncfusion Excel

Syncfusion kütüphanesi, Microsoft Excel (XLS) dosyalarını okumak, yazmak ve manipüle etmek için bir API sağlar. Syncfusion kütüphanesi, geliştiricilerin Microsoft Excel (XLS) dosyalarını okumak, yazmak ve manipüle etmek için uygulamalar oluşturmalarını sağlayan bir C# kütüphanesidir. Özelleştirilmiş veri alımı da desteklenmektedir. C# programlama dillerini destekleyen tüm işletim sistemleriyle uyumludur.

Syncfusion Excel'in Özellikleri

Syncfusion Excel kütüphanesinin özelliklerine bir göz atalım:

Bu kütüphanelerin nasıl çalıştığını inceleyelim. Çeşitli fonksiyonları kontrol edebilmek için önce bir C# projesi oluşturmamız gerekiyor. O halde başlayalım.

1. C# Projesi Oluşturma

Bu öğreticide bir proje oluşturmak için Visual Studio 2019 sürümü (en son sürüm önerilir) ve C# programlama dili kullanılacaktır.

  • Visual Studio 2019'u açın.
  • Yeni bir proje oluşturmak için "Oluştur" üzerine tıklayın.
  • Şablonlardan C# Konsol Uygulaması'nı seçin ve İleri düğmesine tıklayın.

Konsol Uygulaması Konsol Uygulaması

  • Projeye bir isim verin ve İleri düğmesine tıklayın.

Proje Yapılandırması Proje Yapılandırması

  • Her cihazda çalışabildiği için, .NET hedef çerçevesini >= 3.1 seçin. En son ve en kararlı .NET çerçeve sürümü 5.0'dır. Oluştur düğmesine tıklayın. Bir C# konsol uygulaması oluşturulacaktır.

.NET Hedef Çerçevesi .NET Hedef Çerçeve

Mevcut C# projelerini de kullanabilirsiniz. Sadece projeyi açın ve kütüphaneleri yükleyin. Bir sonraki bölümde Excel kütüphanelerini nasıl yükleyebileceğimizi göreceğiz.

2. IronXL Kütüphanesini Yükleme

IronXL kütüphanesini indirip yüklemek için birden fazla yol vardır. Bunlar aşağıdaki gibidir:

  1. Paket Yöneticisi Konsolu
  2. NuGet Paket Yöneticisini Kullanma

2.1 Paket Yöneticisi Konsolu

IronXL kütüphanesini Paket Yöneticisi Konsolu kullanarak yükleyebiliriz. Yüklemek için aşağıdaki adımları takip edin:

  • Paket Yöneticisi Konsolu'nu açın. Genelde Visual Studio'nun alt kısmında bulunur.

Paket Yöneticisi Konsolu Paket Yöneticisi Konsolu

  • Aşağıdaki komutu yazın ve Enter tuşuna basın.

    Install-Package IronXL
    Install-Package IronXL
    SHELL
  • IronXL kütüphanesinin yüklenmesine başlayacaktır.

IronXL Kurulumu IronXL Yükleme

  • Yüklemeden sonra, projemizde kullanabiliriz.

2.2 NuGet Paket Yöneticisi Kullanarak Yükleme

IronXL kütüphanesini direkt olarak NuGet Paket Yöneticisinden yükleyebiliriz. IronXL'i yüklemek için bu adımları takip edin:

  • Menülerden Araçlar'a tıklayın ve NuGet Paket Yöneticisinin üzerine gelin.

NuGet Paket Yöneticisi NuGet Paket Yöneticisi

  • Çözüm için NuGet Paketlerini Yönet'i seçin. Gözat'a tıklayın ve arama çubuğuna IronXL yazın. Arama sonuçlarında IronXL kütüphanesini gösterecektir.

NuGet Paketlerini Yönet NuGet Paketlerini Yönet

  • IronXl.Excel üzerine tıklayın ve Install düğmesine tıklayın. Kütüphane otomatik olarak yüklenecektir.

3. Syncfusion Excel Kütüphanesini Yükleme

Syncfusion Excel kütüphanesini Paket Yöneticisi Konsolu kullanarak yükleyebiliriz. IronXL'den farklı olarak, Windows Forms, WPF, ASP.NET, UWP ve diğer projeler gibi farklı projeler için her kütüphaneyi ayrı ayrı yüklememiz gerekmektedir. Farklı platformlar için farklı komutlar yazmamız gerekiyor.

3.1 Paket Yöneticisi Konsolu Kullanarak Yükleme

Syncfusion Excel kütüphanesini yüklemek için aşağıdaki adımları takip edin:

  • Paket Yöneticisi Konsolu'na gidin.
  • Syncfusion Excel kütüphanesini yüklemek için aşağıdaki komutu yazın:

    Install-Package Syncfusion.XlsIO.WinForms
    Install-Package Syncfusion.XlsIO.WinForms
    SHELL
  • WPF projesinde çalışıyorsanız aşağıdaki komutu yazın:

    Install-package Syncfusion.XlsIO.Wpf
    Install-package Syncfusion.XlsIO.Wpf
    SHELL
  • Kütüphanenin yüklenmesine başlayacaktır. Yüklemeden sonra, projenizde kolayca Syncfusion Excel çerçevesini kullanabilirsiniz.

4. Excel Belgesini Okuma

Bir Excel belgesini okumak, herhangi bir Excel kütüphanesinin başlıca bir fonksiyonudur. IronXL ve Syncfusion Excel çerçevelerini kullanarak Excel dosyalarını nasıl okuyabileceğimizi inceleyeceğiz.

4.1 IronXL

IronXL, Excel belgelerini Microsoft.Office.Interop.Excel kullanmadan okumayı sağlar. IronXL ile başlamadan önce atılması gereken önemli bir adım vardır -- her zaman IronXL'i program dosyamıza dahil ediyoruz. Bu yüzden en üst kısma aşağıdaki kod satırını yazmalıyız:

using IronXL;
using System.Linq;
using IronXL;
using System.Linq;
Imports IronXL
Imports System.Linq
$vbLabelText   $csharpLabel

Birden fazla kod satırı yazma zahmeti olmadan ve temel programlama bilgisiyle Excel dosyalarını okumak ve düzenlemek için aşağıdaki kod satırlarını yazın.

// Supported spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Select cells easily in Excel notation and return the calculated value, date, text, or formula
int cellValue = sheet["A2"].IntValue;

// Read from Ranges of cells elegantly.
foreach (var cell in sheet["A2:B10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
// Supported spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
WorkBook workbook = WorkBook.Load("data.xlsx");
WorkSheet sheet = workbook.WorkSheets.First();

// Select cells easily in Excel notation and return the calculated value, date, text, or formula
int cellValue = sheet["A2"].IntValue;

// Read from Ranges of cells elegantly.
foreach (var cell in sheet["A2:B10"])
{
    Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text);
}
' Supported spreadsheet formats for reading include: XLSX, XLS, CSV, and TSV
Dim workbook As WorkBook = WorkBook.Load("data.xlsx")
Dim sheet As WorkSheet = workbook.WorkSheets.First()

' Select cells easily in Excel notation and return the calculated value, date, text, or formula
Dim cellValue As Integer = sheet("A2").IntValue

' Read from Ranges of cells elegantly.
For Each cell In sheet("A2:B10")
	Console.WriteLine("Cell {0} has value '{1}'", cell.AddressString, cell.Text)
Next cell
$vbLabelText   $csharpLabel

WorkBook.Load fonksiyonu, çalışma kitabını kolayca yüklemeye yardımcı olur. Verilen kodda hücre değerlerini de görüyor ve bunları konsola yazdırıyoruz.

4.2 Syncfusion Excel

Syncfusion Excel çerçevesini kullanarak mevcut Excel dosyalarını nasıl okuyup düzenleyebileceğimizi inceleyelim. Öncelikle, Syncfusion Excel çerçevesini kullanabilmek için Syncfusion'u projemize dahil etmemiz gerekiyor. Bunu yapmak için, kod dosyasının üst kısmına aşağıdaki kod satırlarını eklememiz gerekiyor:

using Syncfusion.XlsIO;
using System.Drawing;
using Syncfusion.XlsIO;
using System.Drawing;
Imports Syncfusion.XlsIO
Imports System.Drawing
$vbLabelText   $csharpLabel

Ardından, Syncfusion Excel çerçevesini kullanarak Excel dosyalarını okumak ve erişmek için projede aşağıdaki kod satırlarını ekleyin.

// Create an instance of new ExcelEngine
using (ExcelEngine excelEngine = new ExcelEngine())
{
    // Instantiate the Excel application object
    IApplication application = excelEngine.Excel;
    // Set the Excel engine application version
    application.DefaultVersion = ExcelVersion.Excel2016;

    // Load the existing Excel workbook
    IWorkbook workbook = application.Workbooks.Open("Sample.xlsx");

    // Get the first worksheet
    IWorksheet worksheet = workbook.Worksheets[0];

    // Assign some text in a cell
    worksheet.Range["A3"].Text = "Hello World";

    // Save the Excel document
    workbook.SaveAs("Output.xlsx");
}
// Create an instance of new ExcelEngine
using (ExcelEngine excelEngine = new ExcelEngine())
{
    // Instantiate the Excel application object
    IApplication application = excelEngine.Excel;
    // Set the Excel engine application version
    application.DefaultVersion = ExcelVersion.Excel2016;

    // Load the existing Excel workbook
    IWorkbook workbook = application.Workbooks.Open("Sample.xlsx");

    // Get the first worksheet
    IWorksheet worksheet = workbook.Worksheets[0];

    // Assign some text in a cell
    worksheet.Range["A3"].Text = "Hello World";

    // Save the Excel document
    workbook.SaveAs("Output.xlsx");
}
' Create an instance of new ExcelEngine
Using excelEngine As New ExcelEngine()
	' Instantiate the Excel application object
	Dim application As IApplication = excelEngine.Excel
	' Set the Excel engine application version
	application.DefaultVersion = ExcelVersion.Excel2016

	' Load the existing Excel workbook
	Dim workbook As IWorkbook = application.Workbooks.Open("Sample.xlsx")

	' Get the first worksheet
	Dim worksheet As IWorksheet = workbook.Worksheets(0)

	' Assign some text in a cell
	worksheet.Range("A3").Text = "Hello World"

	' Save the Excel document
	workbook.SaveAs("Output.xlsx")
End Using
$vbLabelText   $csharpLabel

Syncfusion Excel'de Excel dosyalarını okumak için, önce Excel sürümünü tanımlamamız gerektiğini görüyoruz. Daha sonra dosyayı açabilir ve düzenleyebiliriz. Düzenlenen dosyayı kaydetmek için, düzenlenen dosyanın içerik türünü tekrar Excel sürümüne göre tanımlamamız gerekiyor. IronXL bu durumda çok kolay anlaşılır ve kullanımı çok kolaydır çünkü Excel sürümünü tanımlamak zorunda kalmadık ve IronXL'de küçük ve kolay hatırlanabilir işlevlere sahip parametrelerimiz var.

5. Yeni Excel Belgeleri Oluşturma

Sonraki aşamada, yeni Excel belgeleri oluşturma yöntemlerini ve oluşturulan belgeleri değerlerle doldurma yöntemlerini karşılaştıracağız. Öncelikle, IronXL'de belgeleri nasıl oluşturabileceğimizi inceleyeceğiz.

5.1 IronXL

IronXL'nin sunucunuza veya Interop'a Excel yüklenmiş olmasını gerektirmez. IronXL, Microsoft.Office.Interop.Excel daha hızlı ve daha sezgisel bir API sağlar. Daha önce de bildiğimiz gibi, ilk olarak IronXL kütüphanesini dahil etmemiz gerekiyor, ardından Excel dosyalarını oluşturmak için kodu yazıyoruz. Aşağıdaki kod, IronXL'de Excel dosyaları oluşturmak için kullanılır.

using IronXL;
// Create a new Excel WorkBook document. 
WorkBook xlsxWorkbook = WorkBook.Create(ExcelFileFormat.XLSX);
xlsxWorkbook.Metadata.Author = "IronXL";

// Add a blank WorkSheet
WorkSheet xlsSheet = xlsxWorkbook.CreateWorkSheet("main_sheet");

// Add data and styles to the new worksheet
xlsSheet["A1"].Value = "Hello World";
xlsSheet["A2"].Style.BottomBorder.SetColor("#ff6600");
xlsSheet["A2"].Style.BottomBorder.Type = IronXl.Styles.BorderType.Double;

// Save the Excel file
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
using IronXL;
// Create a new Excel WorkBook document. 
WorkBook xlsxWorkbook = WorkBook.Create(ExcelFileFormat.XLSX);
xlsxWorkbook.Metadata.Author = "IronXL";

// Add a blank WorkSheet
WorkSheet xlsSheet = xlsxWorkbook.CreateWorkSheet("main_sheet");

// Add data and styles to the new worksheet
xlsSheet["A1"].Value = "Hello World";
xlsSheet["A2"].Style.BottomBorder.SetColor("#ff6600");
xlsSheet["A2"].Style.BottomBorder.Type = IronXl.Styles.BorderType.Double;

// Save the Excel file
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
Imports IronXL

' Create a new Excel WorkBook document.
Dim xlsxWorkbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
xlsxWorkbook.Metadata.Author = "IronXL"

' Add a blank WorkSheet
Dim xlsSheet As WorkSheet = xlsxWorkbook.CreateWorkSheet("main_sheet")

' Add data and styles to the new worksheet
xlsSheet("A1").Value = "Hello World"
xlsSheet("A2").Style.BottomBorder.SetColor("#ff6600")
xlsSheet("A2").Style.BottomBorder.Type = IronXl.Styles.BorderType.Double

' Save the Excel file
xlsxWorkbook.SaveAs("NewExcelFile.xlsx")
$vbLabelText   $csharpLabel

Çıktı:

IronXL Çıkışı IronXL Çıktısı

Excel dosyalarının meta verilerini ayarlayabiliriz. Hücrelere değer atamak ve hücreleri biçimlendirmek çok basit ve kullanımı kolay işlevlerle çok kolaydır. Hücrenin alt kenarının rengini ayarlamak için Style.BottomBorder.SetColor fonksiyonunu kullanıyoruz.

5.2 Syncfusion Excel

Aşağıdaki kod, yeni bir Excel dosyası oluşturmayı ve bunu Syncfusion Excel ile kaydetmeyi gösterir. Aşağıdaki kodu ekleyin ve gerekli namespaces'i dahil edin:

using Syncfusion.XlsIO;
using Syncfusion.XlsIO;
Imports Syncfusion.XlsIO
$vbLabelText   $csharpLabel

Şimdi aşağıdaki kod satırlarını ekleyin:

// New instance of ExcelEngine is created equivalent to launching Microsoft Excel with no workbooks open
// Instantiate the spreadsheet creation engine
using (ExcelEngine excelEngine = new ExcelEngine())
{
  // Instantiate the Excel application object
  IApplication application = excelEngine.Excel;

  // Assigns default application version
  application.DefaultVersion = ExcelVersion.Excel2013;

  // Create a workbook with 1 worksheet
  IWorkbook workbook = application.Workbooks.Create(1);

  // Access first worksheet from the workbook
  IWorksheet worksheet = workbook.Worksheets[0];

  // Adding text to a cell
  worksheet.Range["A1"].Text = "Hello World";

  // Saving the workbook to disk in XLSX format
  workbook.SaveAs("Sample.xlsx");
}
// New instance of ExcelEngine is created equivalent to launching Microsoft Excel with no workbooks open
// Instantiate the spreadsheet creation engine
using (ExcelEngine excelEngine = new ExcelEngine())
{
  // Instantiate the Excel application object
  IApplication application = excelEngine.Excel;

  // Assigns default application version
  application.DefaultVersion = ExcelVersion.Excel2013;

  // Create a workbook with 1 worksheet
  IWorkbook workbook = application.Workbooks.Create(1);

  // Access first worksheet from the workbook
  IWorksheet worksheet = workbook.Worksheets[0];

  // Adding text to a cell
  worksheet.Range["A1"].Text = "Hello World";

  // Saving the workbook to disk in XLSX format
  workbook.SaveAs("Sample.xlsx");
}
' New instance of ExcelEngine is created equivalent to launching Microsoft Excel with no workbooks open
' Instantiate the spreadsheet creation engine
Using excelEngine As New ExcelEngine()
  ' Instantiate the Excel application object
  Dim application As IApplication = excelEngine.Excel

  ' Assigns default application version
  application.DefaultVersion = ExcelVersion.Excel2013

  ' Create a workbook with 1 worksheet
  Dim workbook As IWorkbook = application.Workbooks.Create(1)

  ' Access first worksheet from the workbook
  Dim worksheet As IWorksheet = workbook.Worksheets(0)

  ' Adding text to a cell
  worksheet.Range("A1").Text = "Hello World"

  ' Saving the workbook to disk in XLSX format
  workbook.SaveAs("Sample.xlsx")
End Using
$vbLabelText   $csharpLabel

Yukarıdaki kod, yeni bir IWorkbook nesnesi oluşturur ve ardından Workbooks.Create() fonksiyonunu kullanarak Çalışma Sayfasını Çalışma Kitabı içinde oluşturur. Excel çalışma sayfalarının hücrelerine "cells" özelliği aracılığıyla erişir ve ardından dosyayı SaveAs() fonksiyonunu kullanarak son olarak kaydeder.

6. Excel Dosyalarını Dışa Aktarma

Sonraki aşamada, Excel dosyalarını diğer veri formatlarına nasıl dışa aktarabileceğimizi inceleyeceğiz. Bu, Excel kütüphaneleri için önemli bir özelliktir çünkü bazen farklı türde işlemler için farklı formatlarda verilere ihtiyaç duyarız -- bu yüzden hangi kütüphanenin basit ve kolay çözümler sunduğunu kontrol edeceğiz.

6.1 IronXL

IronXL kullanarak, Excel dosyalarını sadece tek bir kod satırıyla dönüştürebiliriz. IronXL, Excel verilerini CSV, JSON, XML, XLSX, XLS ve daha fazlasına aktarabilir.

Aşağıdaki kod, IronXL kullanarak Excel dosyalarını farklı formatlara dönüştürmeye yardımcı olur.

// Export to many formats with fluent saving
xlsxWorkbook.SaveAs("NewExcelFile.xls");
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
xlsxWorkbook.SaveAsCsv("NewExcelFile.csv");
xlsxWorkbook.SaveAsJson("NewExcelFile.json");
xlsxWorkbook.SaveAsXml("NewExcelFile.xml");
// Export to many formats with fluent saving
xlsxWorkbook.SaveAs("NewExcelFile.xls");
xlsxWorkbook.SaveAs("NewExcelFile.xlsx");
xlsxWorkbook.SaveAsCsv("NewExcelFile.csv");
xlsxWorkbook.SaveAsJson("NewExcelFile.json");
xlsxWorkbook.SaveAsXml("NewExcelFile.xml");
' Export to many formats with fluent saving
xlsxWorkbook.SaveAs("NewExcelFile.xls")
xlsxWorkbook.SaveAs("NewExcelFile.xlsx")
xlsxWorkbook.SaveAsCsv("NewExcelFile.csv")
xlsxWorkbook.SaveAsJson("NewExcelFile.json")
xlsxWorkbook.SaveAsXml("NewExcelFile.xml")
$vbLabelText   $csharpLabel

Yukarıdaki kodda, yalnızca bir satırlık kod ile Excel dosyalarını çok kolay bir şekilde dışa aktarabileceğimizi görüyoruz. Ancak, önce Excel dosyasını açmamız veya oluşturmamız gerekiyor ve yukarıda IronXL kullanarak bir Excel dosyasını nasıl açıp oluşturabileceğimizi zaten gördük.

6.2 Syncfusion Excel

Syncfusion Excel framework'u, Excel dosyalarını PDF ve JSON formatına dönüştürebilir. Extra bir kütüphane yüklemeden Excel dosyalarını JSON formatına dönüştürebiliriz. Açılan bir Excel dosyasını bir JSON dosyasına nasıl dönüştüreceğimizin kodu burada.

// Saves the workbook to a JSON file, as schema by default
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema-default.json");

// Saves the workbook to a JSON file as schema
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema.json", true);
// Saves the workbook to a JSON file, as schema by default
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema-default.json");

// Saves the workbook to a JSON file as schema
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema.json", true);
' Saves the workbook to a JSON file, as schema by default
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema-default.json")

' Saves the workbook to a JSON file as schema
workbook.SaveAsJson("Excel-Workbook-To-JSON-as-schema.json", True)
$vbLabelText   $csharpLabel

Tipik Excel belgelerini PDF dosyalarına dönüştürmek için, dönüştürme desteği sağlayacak ekstra bir kütüphane yüklememiz gerekiyor. Excel-to-ODS, Excel dosyalarını ODS formatında kaydederek OpenOffice ve Google Sheets gibi çeşitli uygulamalarda kullanmak üzere saklar. Excel-to-HTML, bir Excel çalışma kitabını veya çalışma sayfasını HTML dosyası olarak dinamik bir şekilde işler.

7. Excel Dosyalarını Korumak

Koruma, Microsoft Excel'in en önemli özelliğidir. Dosyaları kimin düzenleyip açabileceği üzerinde kontrol sağlar. Şifre korumalı Excel dosyaları önemlidir çünkü önemli verileri saklayabilirler. Excel kütüphanelerini kullanarak Excel dosyalarımızı nasıl koruyabileceğimize bir göz atalım.

7.1 IronXL

IronXL kullanarak, bir satırlık kod ile Excel dosyamızı koruyabiliriz. Aşağıdaki kod, bir Excel dosyasını nasıl açıp koruyabileceğimizi göstermektedir.

using IronXL;

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Protect the worksheet by setting the password to it
// Users will then need to know this password to edit the password-protected Excel file's worksheet in Excel.
worksheet.ProtectSheet("password");
workbook.Save();

// Unprotect the worksheet and remove any password locks 
// It works even if you do not know the password!
worksheet.UnprotectSheet();
workbook.Save();
using IronXL;

WorkBook workbook = WorkBook.Load("test.xlsx");
WorkSheet worksheet = workbook.DefaultWorkSheet;

// Protect the worksheet by setting the password to it
// Users will then need to know this password to edit the password-protected Excel file's worksheet in Excel.
worksheet.ProtectSheet("password");
workbook.Save();

// Unprotect the worksheet and remove any password locks 
// It works even if you do not know the password!
worksheet.UnprotectSheet();
workbook.Save();
Imports IronXL

Private workbook As WorkBook = WorkBook.Load("test.xlsx")
Private worksheet As WorkSheet = workbook.DefaultWorkSheet

' Protect the worksheet by setting the password to it
' Users will then need to know this password to edit the password-protected Excel file's worksheet in Excel.
worksheet.ProtectSheet("password")
workbook.Save()

' Unprotect the worksheet and remove any password locks 
' It works even if you do not know the password!
worksheet.UnprotectSheet()
workbook.Save()
$vbLabelText   $csharpLabel

ProtectSheet() fonksiyonu, kullanıcının bir Excel dosyasını şifrelemesini sağlar. Sayfanın korumasını kaldırmak için Excel dosyasını yükledikten sonra UnprotectSheet() fonksiyonunu kullanabiliriz. Bu fonksiyon, şifreleri bilmeseniz bile tüm şifreleri kaldırır.

7.2 Syncfusion Excel

Syncfusion Excel framework'unu kullanarak Excel dosyalarını koruyabiliriz. Aşağıdaki kod, bir Excel dosyası oluşturup korumamıza olanak tanır.

private void ProtectWorkbook()
{
    using (ExcelEngine excelEngine = new ExcelEngine())
    {
        // Instantiate the application object
        IApplication application = excelEngine.Excel;

        // Create a workbook
        IWorkbook workbook = application.Workbooks.Create(1);

        // Protect the workbook specifying a password with Boolean attributes for structure and windows protection
        bool isProtectWindow = true;
        bool isProtectContent = true;
        workbook.Protect(isProtectWindow, isProtectContent, "password");

        // Save the Excel file
        workbook.SaveAs(@"d:\test\XlsIOOutput_ProtectedWorkbook.xlsx");
    }
}
private void ProtectWorkbook()
{
    using (ExcelEngine excelEngine = new ExcelEngine())
    {
        // Instantiate the application object
        IApplication application = excelEngine.Excel;

        // Create a workbook
        IWorkbook workbook = application.Workbooks.Create(1);

        // Protect the workbook specifying a password with Boolean attributes for structure and windows protection
        bool isProtectWindow = true;
        bool isProtectContent = true;
        workbook.Protect(isProtectWindow, isProtectContent, "password");

        // Save the Excel file
        workbook.SaveAs(@"d:\test\XlsIOOutput_ProtectedWorkbook.xlsx");
    }
}
Private Sub ProtectWorkbook()
	Using excelEngine As New ExcelEngine()
		' Instantiate the application object
		Dim application As IApplication = excelEngine.Excel

		' Create a workbook
		Dim workbook As IWorkbook = application.Workbooks.Create(1)

		' Protect the workbook specifying a password with Boolean attributes for structure and windows protection
		Dim isProtectWindow As Boolean = True
		Dim isProtectContent As Boolean = True
		workbook.Protect(isProtectWindow, isProtectContent, "password")

		' Save the Excel file
		workbook.SaveAs("d:\test\XlsIOOutput_ProtectedWorkbook.xlsx")
	End Using
End Sub
$vbLabelText   $csharpLabel

Excel dosyasını şifrelemek için Protect() fonksiyonunu kullanıyoruz. Sadece sayfayı korumak istiyorsak veya Excel dosyasının içeriğini de korumak istiyorsak fonksiyona üç parametre geçmemiz gerekiyor. Üçüncü parametre, ayarlamak istediğiniz şifre olacaktır.

8. Lisanslama

8.1 IronXL

IronXL, geliştirme için tamamen ücretsizdir. Geliştirme için her yönünü deneyebilirsiniz. Ancak, ücretsiz geliştirme sürümünde bir filigran olacaktır. Üretimde de ücretsiz deneyebilirsiniz. Üretim için ücretsiz deneme sürümünü herhangi bir ödeme yapmadan etkinleştirebilirsiniz. IronXL satın almayı tercih ederseniz, fiyat planları aşağıdaki gibidir:

Lite Sürümü

Tek geliştirici iseniz ve projenizde IronXL kullanmak isterseniz, Lite Sürümü'nü seçebilirsiniz. Bu sizin için en iyi seçenek olacaktır.

IronXL Lite IronXL Lite

Profesyonel Sürüm

Şirketinizin dünya genelinde birden çok şubesi varsa, Professional Sürümü en iyi seçenektir. Bu Sürüm, aynı anda 10 lokasyon, 10 geliştirici ve 10 projeyi destekler.

IronXL Professional IronXL Professional

Sınırsız Sürüm

Bu fiyatlandırma planı, sınırsız geliştirici, sınırsız lokasyon ve sınırsız proje için ömür boyu bir ödeme ile destek sunar. Birçok projede IronXL kullanmayı tercih ediyorsanız, en iyi seçenek budur.

IronXL Unlimited IronXL Unlimited

IronXL ayrıca telif dağıtımını destekler ve size ürün desteği ve güncellemeleri sunar.

Telif Dağıtımı Telif Dağıtımı

IronXL'nin lisanslama sayfası, fiyatlandırma ve kullanım hakları hakkında daha fazla ayrıntı içerir.

8.2 Syncfusion Excel Library

Syncfusion Excel kütüphanesi de ücretsiz bir deneme sürümü sunuyor. Syncfusion Excel satın almak isterseniz, beş geliştiricilik bir ekip için aylık $395 ödeyerek satın alabilirsiniz. Syncfusion, 10 veya daha fazla geliştiricilik ekipler ve sınırsız lisanslar için ek lisanslar da sunmaktadır.

Syncfusion Syncfusion

9. Sonuç

Her iki kütüphane de etkili işlevsellikler sunar. Ancak büyük resme baktığımızda, IronXL daha uygun ve kullanımı daha kolaydır. Küçük ve akılda kalıcı fonksiyonları vardır. IronXL ile, tek bir satırlık kod ile çok sayıda düzenleme ve biçimlendirme yapabilirsiniz. Kodun akışı karmaşıktır, ancak bir başlangıç düzeyindeki kişi bunu çok kolay bir şekilde anlayabilir. IronXL'nin nasıl çalıştığını bilmeye ya da anlamaya ihtiyaçınız yok. Farklı platformlar için ayrı kütüphaneler yüklemeye gerek yok. Bir defa yükleyin ve her bir işlem için hazırsınız.

Syncfusion Excel, yukarıda gördüğümüz birçok özelliğe sahiptir. Syncfusion Excel yardımıyla çok sayıda biçimlendirme ve dönüşüm gerçekleştirebiliriz. Yeni Excel belgeleri oluşturabilir, mevcut Excel dosyalarını değiştirebilir, birden çok biçimlendirme yapabilir ve şifreleme yapabiliriz. Dönüşümleri gerçekleştirmek için ayrı bir kütüphane yüklememiz gerekir.

IronXL'nin çeşitli fiyatlandırma planları vardır. Kendi ihtiyaçlarınıza en uygun planı satın alabilirsiniz. Örneğin, tek geliştirici iseniz ve bir proje için ticari amaçlarla IronXL'ye ihtiyaçınız varsa, bunu Syncfusion'dan çok daha düşük bir fiyatla, tek bir ödeme ile etkinleştirebilirsiniz. Syncfusion sizden sadece bir yıl için birkaç yüz dolar ödeyerek kütüphane satın almanızı gerektirir, tek bir geliştirici ve tek bir proje için. Dolayısıyla, IronXL çok daha ucuzdur ve Syncfusion Excel framework'undan çok daha iyi seçenekler sunmaktadır.

Sonuç olarak, IronXL, Syncfusion Excel framework'undan daha iyi bir seçimdir. Yukarıdaki paragraflarda gördüğümüz gibi, IronXL'nin basit fonksiyonları sayesinde kullanımı çok kolaydır ve tek bir satırlık kod ile çok sayıda biçimlendirme yapabiliriz. Ancak, Syncfusion Excel framework'unda, zaten IronXL'nin arka planında tanımlanmış birçok öğeyi tanımlamak için birden fazla kod satırı yazmamız gerekiyor ve kullanıcı, birden fazla parametre ve değişken tanımlamak için zamanı harcamamalıdır. Ayrıca, IronXL daha ucuzdur ve daha iyi lisanslama seçeneklerine sahiptir. Iron Software, şu anda özel bir teklif sunuyor: sadece iki yazılım paketi fiyatına beş yazılım paketi satın alabilirsiniz. Bu, beş Iron Software paketini indirimli bir fiyata satın alabileceğiniz anlamına gelir.

Lütfen dikkate alinSyncfusion, ilgili sahibinin tescilli markasıdır. Bu site, Syncfusion ile bağlı, onaylanmış veya desteklenmemektedir. Tüm ürün adları, logolar ve markalar kendi sahiplerinin mülkiyetindedir. Karşılaştırmalar yalnızca bilgilendirme amaçlıdır ve yazım sırasında kamuya açık bilgileri yansıtır.

Sıkça Sorulan Sorular

Excel dosya manipülasyonu için IronXL kullanmanın başlıca avantajları nelerdir?

IronXL, geliştiricilerin Excel belgelerini kolayca okumasını, yazmasını ve manipüle etmesini sağlayan basitleştirilmiş ve kullanıcı dostu bir API sunar. XLS, XLSX, CSV ve JSON gibi birden fazla dosya formatını destekler ve Microsoft Excel kurulumu gerektirmeden veri yükleme, grafik oluşturma, formül yönetimi ve hücre biçimlendirme özelliklerini içerir.

Excel dosyalarını C# içinde farklı formatlara nasıl dönüştürebilirim?

IronXL'yi kullanarak Excel dosyalarını CSV, JSON, XML, XLSX ve XLS gibi çeşitli formatlara aktarabilirsiniz. Bu, minimal kodla yapılabilir ve C# uygulamalarınıza entegrasyonunu kolaylaştırır.

IronXL'yi kullanmak için Excel'in kurulu olması gerekli mi?

Hayır, IronXL, sunucunuzda veya iş istasyonunuzda Microsoft Excel'in kurulmasını gerektirmez. Kendi API'si aracılığıyla Excel dosya manipülasyon görevlerini yönetir.

IronXL'nin lisanslaması Syncfusion Excel ile nasıl karşılaştırılır?

IronXL, filigran içeren ücretsiz bir geliştirme sürümü sunar ve ticari kullanım için çeşitli ücretli sürümler ile esneklik sağlayan bir lisanslama modeli sunar. Buna karşılık, Syncfusion Excel, geliştirici ve proje sayısına göre fiyatlandırılan bir lisans satın almayı gerektirir.

IronXL'yi, Syncfusion Excel'e kıyasla başlangıç seviyesinde bir terci yapmayı daha cazip kılan nedir?

IronXL, basit ve sezgisel API'si sayesinde, başlangıç seviyesinde olanlar için genellikle daha kolaydır; bu da karmaşık görevlerin minimal kodla gerçekleştirilmesine olanak tanır. Syncfusion Excel'den farklı olarak, IronXL, yeni Excel manipülasyon geliştiricileri için daha erişilebilir hale getirerek birçok parametrenin tanımlanmasını gerektirmez.

IronXL, Excel dosya koruması ve güvenliğini yönetebilir mi?

Evet, IronXL, kullanıcıların belgelerini şifreler ve diğer koruma özelliklerini kullanarak Excel dosya korumasını yönetebilir. Bu, Excel dosyalarını paylaşırken veri bütünlüğü ve gizliliğini sağlar.

Geliştiriciler neden Syncfusion Excel yerine IronXL kullanmayı düşünmelidir?

Geliştiriciler, IronXL'yi basitliği, kullanım kolaylığı, maliyet etkinliği ve farklı platformlar için ek kütüphaneler gerektirmeyen sağlam özellik seti nedeniyle Syncfusion Excel yerine tercih edebilir. IronXL, Excel dosya manipülasyonu için basit ve doğrudan bir yaklaşım sunar, bu da onu geliştiriciler için ideal bir tercih haline getirir.

IronXL, Excel dosyalarında formül yönetimini destekliyor mu?

Evet, IronXL, Excel dosyalarınız içinde formüllerle çalışmayı ve bu formülleri okuyup, yazıp değerlendirme kapasitesine sahiptir; bu, programatik olarak karmaşık hesaplamaları yönetmek için kapsamlı bir çözüm sunar.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara