Verileri excel'e aktar

Bu makalede, dizi, özel nesne koleksiyonu, DataTable, DataView, DataGrid, GridView, HTML, JSON ve CSV gibi çeşitli veri kaynaklarından C# ve VB.NET’te Excel’e nasıl veri aktarılacağını göstereceğiz.

Aspose.Cells API ile Verileri C#’ta Excel’e Aktarın

Aspose.Cells for .NET, .NET uygulamaları içinde Excel dosyaları oluşturmanıza, düzenlemenize veya dönüştürmenize olanak tanıyan güçlü bir elektronik tablo düzenleme API’sidir. API’nin kullanımı kolay yöntemleri, Excel otomasyon özelliklerini birkaç satır kodla sorunsuz bir şekilde gerçekleştirmenize olanak tanır. NuGet, [Aspose.Cells API for .NET]‘i indirmenin ve kurmanın en kolay yoludur14. NuGet Paketlerini Yönet penceresini açın ve Aspose.Cells .NET paketini bulmak için arama metin kutusuna “Aspose.Cells" yazın. Son olarak paketin en son sürümünü yüklemek için Yükle düğmesine tıklayın.

C# Dizisini Excel’e Aktarma - Kısa Eğitim

Referans tipi veya değer tipindeki bir diziyi (tek boyutlu veya iki boyutlu) bir Excel belgesine aktarabiliriz. Verileri bir diziden bir elektronik tabloya aktarmak için Cells koleksiyonunun ImportArray yöntemini kullanırız. ImportArray yönteminin aşırı yüklenmiş sürümleri şunlardır.

İsimAçıklama
ImportArray(Double[], Int32, Int32, Boolean)Bir double dizisini çalışma sayfasına aktarır.
ImportArray(Int32[], Int32, Int32, Boolean)Bir tamsayı dizisini çalışma sayfasına aktarır.
ImportArray(String[], Int32, Int32, Boolean)Bir dize dizisini çalışma sayfasına aktarır.
ImportArray(Double[,], Int32, Int32)İki boyutlu bir double dizisini çalışma sayfasına aktarır.
ImportArray(Int32[,], Int32, Int32)Bir tamsayının iki boyutlu dizisini çalışma sayfasına aktarır.
ImportArray(String[,], Int32, Int32)İki boyutlu bir dize dizisini çalışma sayfasına aktarır.

Tipik bir aşırı yük aşağıdaki parametreleri alır:

  • Dizi, içeriği dışa aktardığınız dizi nesnesi.
  • Satır numarası, verilerin dışa aktarılacağı ilk hücrenin (sıfır tabanlı) satır numarası.
  • Sütun numarası, verilerin aktarılacağı ilk hücrenin (sıfır tabanlı) sütun numarası.
  • Dikeydir; verilerin dikey mi yatay mı dışa aktarılacağını belirten bir Boolean değeridir.

C# dilinde bir diziyi Excel dosyasına aktarma adımları aşağıda verilmiştir.

  1. Bir Çalışma Kitabı nesnesi oluşturun. Bir Çalışma Kitabı sınıfı bir Microsoft Excel dosyasını temsil eder.
  2. İstediğiniz çalışma sayfasına bir referans alın. Workbook sınıfı, bir Excel dosyasındaki her çalışma sayfasına erişime izin veren bir Worksheets koleksiyonu içerir.
  3. Belirtilen satır ve sütundaki çalışma sayfasına bir diziyi dışa aktarmak için bir Cells koleksiyonunun ImportArray yöntemini çağırın. Worksheet sınıfı bir Cells koleksiyonu sağlar.
  4. Excel dosyasını Workbook.Save(string) yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, bir String dizisinin C# dilinde bir Excel dosyasına nasıl aktarılacağını gösterir.

// Instantiating a Workbook object
Workbook workbook = new Workbook();

// Obtaining the reference of the worksheet
Worksheet worksheet = workbook.Worksheets[0];

// Creating an array containing names as string values
string[] names = new string[] { "Laurence Chen", "Roman Korchagin", "Kyle Huang" };

// Exporting the array of names to first row and first column vertically
worksheet.Cells.ImportArray(names, 0, 0, true);

// Saving the Excel file
workbook.Save("StringsArray.xlsx");
Dize Dizisini Excel'e Aktar

Bir dizi veriyi Excel’e aktarma

Benzer şekilde iki boyutlu bir diziyi bir Excel dosyasına aktarabiliriz. Aşağıdaki kod örneği, iki boyutlu dizinin C# dilinde bir Excel dosyasına nasıl aktarılacağını gösterir.

// Creating a two-dimensional array of integers
int[,] array2D = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };

// Exporting a two-dimensional array at the first row and first column of the worksheet
worksheet.Cells.ImportArray(array2D, 0, 0);

C# ArrayList’i Excel’e Aktarma

ArrayList’ten çalışma sayfasına veri aktarmak için Cells koleksiyonunun ImportArrayList yöntemini çağırın. ImportArrayList yöntemi aşağıdaki parametreleri alır:

  • Dizi listesi, dışa aktardığınız ArrayList nesnesini temsil eder.
  • Satır numarası, verilerin aktarılacağı ilk hücrenin satır numarasını temsil eder.
  • Sütun numarası, verilerin aktarılacağı ilk hücrenin sütun numarasını temsil eder.
  • Dikey, verilerin dikey mi yoksa yatay olarak mı aktarılacağını belirten bir Boolean değeridir.

Aşağıdaki kod örneği, ArrayList’in C# dilinde bir Excel dosyasına nasıl aktarılacağını gösterir.

// Instantiating a Workbook object
Workbook workbook = new Workbook();

// Obtaining the reference of the worksheet
Worksheet worksheet = workbook.Worksheets[0];

// Instantiating an ArrayList object
ArrayList list = new ArrayList();

// Add few names to the list as string values
list.Add("Laurence Chen");
list.Add("Roman Korchagin");
list.Add("Kyle Huang");
list.Add("Tommy Wang");

// Exporting the contents of ArrayList vertically at the first row and first column of the worksheet. 
worksheet.Cells.ImportArrayList(list, 0, 0, true);

// Saving the Excel file
workbook.Save("ArrayListExport.xlsx");

C# Özel Nesnelerin Koleksiyonunu Excel’e Aktarma

Verileri özel nesneler koleksiyonundan bir çalışma sayfasına aktarmak için ImportCustomObjects yöntemini kullanırız. Bu yöntemin aşırı yüklenmiş iki versiyonu vardır.

  1. ImportCustomObjects(ICollection list, String[] propertyNames, Boolean isPropertyNameShown, Int32 FirstRow, Int32 FirstColumn, Int32 rowNumber, Boolean eklemeleri, String dateFormatString, Boolean ConvertStringToNumber)
  2. ImportCustomObjects(ICollection list, Int32 FirstRow, Int32 FirstColumn, ImportTableOptions options)

Aşırı yüklenmiş yöntemlerin her birini tek tek inceleyeceğiz. İlk aşırı yükleme yönteminin parametrelerinin açıklaması aşağıda verilmiştir:

  • liste Özel nesnelerin koleksiyonu.
  • propertyNames Dışa aktarılacak nesnenin özelliklerinin adları. Eğer null ise tüm özellikler dışa aktarılacaktır.
  • isPropertyNameShown Özellik adlarının ilk satıra aktarılıp aktarılmayacağını belirtir.
  • FirstRow Dışa aktarılacak ilk hücrenin satır numarası.
  • FirstColumn Dışa aktarılacak ilk hücrenin sütun numarası.
  • rowNumber Dışa aktarılacak nesnelerin sayısı.
  • insertRows Verileri sığdırmak için fazladan satırların eklenip eklenmeyeceğini belirtir.
  • dateFormatString Hücreler için tarih biçimi dizesi.
  • ConvertStringToNumber Bu yöntemin dizeyi bir sayıya dönüştürmeye çalışıp çalışmayacağını belirtir.

Aşağıdaki örnekte, Person nesnelerinin bir listesini C# dilinde bir Excel belgesine aktarıyoruz. Bir Person nesnesinin yalnızca iki özelliğini (Ad ve Yaş) dışa aktardığımızı lütfen unutmayın.

// Instantiate a new Workbook
Workbook book = new Workbook();
// Obtaining the reference of the worksheet
Worksheet sheet = book.Worksheets[0];

// Define List
List<Person> list = new List<Person>();

list.Add(new Person("Mike", 25, "Software Engineer"));
list.Add(new Person("Steve", 30, "Doctor"));
list.Add(new Person("Billy", 35, "Teacher"));

// We pick only Name and Age columns, not all, to export to the worksheet         
sheet.Cells.ImportCustomObjects((System.Collections.ICollection)list,
    new string[] { "Name", "Age" }, // propertyNames
    true, // isPropertyNameShown
    0, // firstRow
    0, // firstColumn
    list.Count, // Number of objects to be exported
    true, // insertRows
    null, // dateFormatString
    false); // convertStringToNumber

// Save the Excel file
book.Save("ExportedCustomObjects.xlsx");
       
public class Person
{
    public string Name { get; set; }

    public int Age { get; set; }

    public string Occupation { get; set; }

    public Person(string name, int age, string occupation)
    {
        Age = age;
        Name = name;
        Occupation = occupation;
    }
}
Nesne Listesini Excel'e Aktarma

Kişi nesnelerinin listesini Excel’e aktarma

Şimdi ikinci aşırı yüklenmiş ImportCustomObjects yöntemini inceliyoruz. Yöntemin parametrelerinin açıklaması aşağıda verilmiştir:

  • list Özel nesnelerin listesi.
  • FirstRow Dışa aktarılacak ilk hücrenin satır numarası.
  • FirstColumn Dışa aktarılacak ilk hücrenin sütun numarası.
  • options ImportTableOptions nesnesi.

ImportTableOptions parametresi, verileri hücrelere aktarmak için çeşitli seçenekler sunar. Bunlardan bazıları aşağıda verilmiştir:

  • CheckMergedCells Bir Excel belgesi birleştirilmiş hücreler içeriyor mu?
  • ColumnIndexes Veri kaynağından dışa aktarılacak sütun dizinlerinin tamsayı dizisi (0 tabanlı). null, tüm sütunların dışa aktarılması gerektiği anlamına gelir.
  • ConvertGridStyle Izgara görünümü stilinin hücrelere uygulanıp uygulanmayacağını belirtir.
  • ConvertNumericData Dize değerinin sayısal değere mi yoksa tarih değerine mi dönüştürülmesi gerektiğini belirten bir boolean değeri.
  • DateFormat Dışa aktarılan DateTime değerlerine sahip hücreler için tarih biçimi dizesini alır veya ayarlar.
  • DefaultValues Tablodaki hücrenin varsayılan değeri null’dur.
  • InsertRows Veri kayıtlarını dışa aktarmak için yeni satırların eklenip eklenmeyeceğini belirtir.
  • IsFieldNameShown Alan adlarının dışa aktarılıp aktarılmayacağını belirtir.
  • IsFormulas Verilerin formül olup olmadığını belirtir.
  • IsHtmlString Verilerin HTML etiketleri içerip içermediğini gösterir. Değeri true olarak ayarlarsak, veriler bir Excel belgesine aktarılırken HTML biçimlendirmesi korunmaya devam eder.
  • NumberFormats Sayı formatlarını alır veya ayarlar
  • ShiftFirstRowDown Satır eklerken ilk satırın aşağı kaydırılıp kaydırılmayacağını belirtir.
  • TotalColumns Bir veri kaynağından dışa aktarılacak toplam sütun sayısını alır veya ayarlar. -1, verilen veri kaynağının tüm sütunları anlamına gelir.
  • TotalRows Veri kaynağından dışa aktarılacak toplam satır sayısını alır veya ayarlar. -1, verilen veri kaynağının tüm satırları anlamına gelir.

Aşağıdaki örnekte, bir nesne koleksiyonundan verileri birleştirilmiş hücreleri içeren bir çalışma sayfasına aktarıyoruz. Excel belgesi birleştirilmiş hücreler içerdiğinden ImportTableOptions.CheckMergedCells özelliğinin değerini true olarak ayarlıyoruz.

// Opening an existing Workbook.
Workbook workbook = new Workbook("SampleMergedTemplate.xlsx");
List<Product> productList = new List<Product>();

// Creating a collection of Products
for (int i = 0; i < 3; i++)
{
    Product product = new Product
    {
        ProductId = i,
        ProductName = "Test Product - " + i
    };
    productList.Add(product);
}

ImportTableOptions tableOptions = new ImportTableOptions();
// Set CheckMergedCells property to true
tableOptions.CheckMergedCells = true;
tableOptions.IsFieldNameShown = false;

//Export data to excel template (in second row, first column) 
workbook.Worksheets[0].Cells.ImportCustomObjects((ICollection)productList, 1, 0, tableOptions);
workbook.Save("SampleMergedTemplate_out.xlsx", SaveFormat.Xlsx);

public class Product
{
    public int ProductId { get; set; }

    public string ProductName { get; set; }
}
Verileri bir nesne koleksiyonundan birleştirilmiş hücreleri içeren bir çalışma sayfasına aktarma

Verileri Birleştirilmiş Hücreler İçeren Bir Excel Belgesine Dışa Aktarma

C# Satırları ve Sütunları bir Excel dosyasından diğerine kopyalar

Satırları ve sütunları bir Excel belgesinden diğerine programlı olarak kopyalayabiliriz. Bir satır (veya sütun) kopyalandığında, güncellenmiş referanslarla birlikte formüller ve değerler, yorumlar, biçimlendirme, gizli hücreler, resimler ve diğer çizim nesneleri de dahil olmak üzere satır (veya sütun) içindeki veriler de kopyalanır. Ayrıca bir Excel belgesindeki aynı çalışma sayfasındaki veya farklı çalışma sayfalarındaki satırları ve sütunları da kopyalayabiliriz. Aspose.Cells satırları ve sütunları kopyalamak için aşağıdaki yöntemleri sağlar.

Aşağıdaki örnek kod, C#’ta satırların bir Excel belgesinden diğerine nasıl kopyalanacağını gösterir.

// Open the source excel file.
Workbook srcWorkbook = new Workbook("Source_Workbook.xlsx");

// Instantiate the destination excel file.
Workbook destWorkbook = new Workbook();

// Get the first worksheet of the source workbook.
Worksheet srcWorksheet = srcWorkbook.Worksheets[0];

// Get the first worksheet of the destination workbook.
Worksheet desWorksheet = destWorkbook.Worksheets[0];

// Copy all the rows of the first worksheet of source Workbook to
// the first worksheet of destination Workbook.
desWorksheet.Cells.CopyRows(srcWorksheet.Cells, 0, 0, srcWorksheet.Cells.MaxDisplayRange.RowCount);

// Save the excel file.
destWorkbook.Save("Destination_Workbook.xlsx");

Aşağıdaki örnek kod, bir Excel belgesinin belirli satırlarının diğerine nasıl kopyalanacağını gösterir.

// Open the source excel file.
Workbook srcWorkbook = new Workbook("Source_Workbook.xlsx");

// Instantiate the destination excel file.
Workbook destWorkbook = new Workbook();

// Get the first worksheet of the source workbook.
Worksheet srcWorksheet = srcWorkbook.Worksheets[0];

// Get the first worksheet of the destination workbook.
Worksheet desWorksheet = destWorkbook.Worksheets[0];

// Copy the second row of the source Workbook to the first row of destination Workbook.
desWorksheet.Cells.CopyRow(srcWorksheet.Cells, 1, 0);

// Copy the fourth row of the source Workbook to the second row of destination Workbook.
desWorksheet.Cells.CopyRow(srcWorksheet.Cells, 3, 1);

// Save the excel file.
destWorkbook.Save("Destination_Workbook.xlsx");
Satırların Verilerini bir Excel Belgesinden diğerine kopyalar

Benzer şekilde, CopyColumn veya CopyColumns yöntemini kullanarak sütunların verilerini bir Microsoft Excel belgesinden diğerine kopyalayabiliriz.

C# DataTable’ı Excel’e Aktarma

DataTable, DataColumn ve DataView gibi ADO.NET nesnelerinden gelen veriler Excel çalışma sayfalarına aktarılabilir. Bir DataTable’dan verileri dışarı aktarmak için Hücreler koleksiyonunun ImportData yöntemini çağırırız. ImportData yönteminin aşırı yüklenmiş birçok sürümü vardır ancak biz aşağıdakileri kullanırız:

public int ImportData(
	DataTable table,
	int firstRow,
	int firstColumn,
	ImportTableOptions options
)

Parametrelerin açıklaması aşağıda verilmiştir:

  • dışa aktarılacak tablo DataTable nesnesi.
  • FirstRow Dışa aktarılacak ilk hücrenin satır numarası.
  • FirstColumn Dışa aktarılacak ilk hücrenin sütun numarası.
  • optionsType ImportTableOptions nesnesi.

Aşağıdaki kod örneğinde üç sütun ve iki satırdan oluşan bir DataTable nesnesi oluşturuyoruz. Ve bunu bir Excel çalışma sayfasına aktarıyorum.

// Instantiating a Workbook object            
Workbook workbook = new Workbook();

// Obtaining the reference of the worksheet
Worksheet worksheet = workbook.Worksheets[0];

// Instantiating a "Products" DataTable object
DataTable dataTable = new DataTable("Products");

// Adding columns to the DataTable object
dataTable.Columns.Add("Product ID", typeof(int));
dataTable.Columns.Add("Product Name", typeof(string));
dataTable.Columns.Add("Units In Stock", typeof(int));

// Creating an empty row in the DataTable object
DataRow dr = dataTable.NewRow();

// Adding data to the row
dr[0] = 1;
dr[1] = "Aniseed Syrup";
dr[2] = 15;

// Adding filled row to the DataTable object
dataTable.Rows.Add(dr);

// Creating another empty row in the DataTable object
dr = dataTable.NewRow();

// Adding data to the row
dr[0] = 2;
dr[1] = "Boston Crab Meat";
dr[2] = 123;

// Adding filled row to the DataTable object
dataTable.Rows.Add(dr);

// Setting IsFieldNameShown property to true will add column names // of the DataTable to the worksheet as a header row
ImportTableOptions tableOptions = new ImportTableOptions();
tableOptions.IsFieldNameShown = true;

// Exporting the contents of DataTable at the first row and first column.
worksheet.Cells.ImportData(dataTable, 0, 0, tableOptions);

// Saving the Excel file
workbook.Save("DataTable_Eport.xlsx");
DataTable'ı Excel'e Aktarma

DataTable’ı Excel’e Aktarma

Seçici DataColumn’ların Verilerini C#’ta Excel’e Aktarma

Bir DataTable veya DataView’ın seçici DataColumn’larını bir Excel belgesine aktarabiliriz. Daha önce tartışıldığı gibi, ImportData yöntemi, ImportTableOptions türünde bir bağımsız değişkeni kabul eder. ImportTableOptions sınıfı, dışa aktarmak istediğimiz bir dizi sütun indeksini (sıfır tabanlı) kabul eden bir ColumnIndexes özelliğine sahiptir. Aşağıdaki kod örneğinde, bir DataTable’ın yalnızca iki DataColumn’unu bir Excel Çalışma Sayfasına aktarıyoruz.

// Instantiating a "Products" DataTable object
DataTable dataTable = new DataTable("Products");

// Adding columns to the DataTable object
dataTable.Columns.Add("Product ID", typeof(int));
dataTable.Columns.Add("Product Name", typeof(string));
dataTable.Columns.Add("Units In Stock", typeof(int));

// Creating an empty row in the DataTable object
DataRow dr = dataTable.NewRow();

// Adding data to the row
dr[0] = 1;
dr[1] = "Aniseed Syrup";
dr[2] = 15;

// Adding filled row to the DataTable object
dataTable.Rows.Add(dr);

// Creating another empty row in the DataTable object
dr = dataTable.NewRow();

// Adding data to the row
dr[0] = 2;
dr[1] = "Boston Crab Meat";
dr[2] = 123;

// Adding filled row to the DataTable object
dataTable.Rows.Add(dr);

// Instantiate a new Workbook
Workbook book = new Workbook();

Worksheet sheet = book.Worksheets[0];

// Create export options
ImportTableOptions importOptions = new ImportTableOptions();
// Sets the columns (0-based) to export from data source.
// null means all columns should be exported.
importOptions.ColumnIndexes = new int[] { 0, 1 };
importOptions.IsFieldNameShown = true;

// Exporting the values of 1st and 2nd columns of the data table
sheet.Cells.ImportData(dataTable, 0, 0, importOptions);

book.Save("DataColumsExport.xlsx");
Seçici Veri Sütunlarının Verilerini Excel'e Aktarma

DataColumns’un Excel’e çıktısı

C#’ta Verileri DataView’dan Excel’e Aktarma

DataView, DataTable’daki verilerin bir alt kümesini sunmak üzere özelleştirilebilen bir DataTable görünümüdür. Verileri DataView’dan bir Excel belgesine aktarmak için ImportData yönteminin aşağıdaki aşırı yüklenmiş sürümünü kullanıyoruz.

public int ImportData(
	DataView dataView,
	int firstRow,
	int firstColumn,
	ImportTableOptions options
)

DataView oluşturmanın iki yolu olduğunu biliyoruz. DataView yapıcısını kullanabiliriz veya DataTable’nin DefaultView özelliğine bir referans oluşturabiliriz. Aşağıdaki kod örneğinde DataView oluşturmak için sonraki yöntemi kullanıyoruz.

worksheet.Cells.ImportData(dataTable.DefaultView, 0, 0, options);

C#’ta DataGrid ve GridView’dan Excel’e Veri Aktarma

Aspose.Cells kütüphanesi, DataGrid ve GridView gibi Microsoft Grid kontrollerinden verileri bir Excel çalışma sayfasına aktarmamıza olanak tanır. Verileri bir DataGrid’den dışa aktarmak için ImportDataGrid yöntemini ve bir GridView’den verileri dışa aktarmak için ImportGridView yöntemini sağlar.

ImportDataGrid yönteminin aşırı yüklenmiş birçok sürümü vardır ancak tipik bir aşırı yükleme aşağıdaki parametreleri alır:

  • dataGrid, içeriği dışa aktardığımız DataGrid nesnesi.
  • FirstRow, verilerin aktarılacağı ilk hücrenin satır numarası.
  • FirstColumn, verilerin aktarılacağı ilk hücrenin sütun numarası.
  • insertRows, verileri sığdırmak için çalışma sayfasına fazladan satırların eklenmesi gerekip gerekmediğini belirten bir Boolean özelliği.
  • importStyle, hücre stilinin dışa aktarılıp aktarılmayacağını belirten bir Boolean özelliği.

Aşağıdaki kod örneği, DataGrid’deki verilerin C# dilinde bir Excel dosyasına nasıl aktarılacağını gösterir.

// Create a DataTable object and set it as the DataSource of the DataGrid.
DataTable dataTable = new DataTable("Products");
dataTable.Columns.Add("Product ID", typeof(int));
dataTable.Columns.Add("Product Name", typeof(string));
dataTable.Columns.Add("Units In Stock", typeof(int));

DataRow dr = dataTable.NewRow();
dr[0] = 1;
dr[1] = "Aniseed Syrup";
dr[2] = 15;
dataTable.Rows.Add(dr);

dr = dataTable.NewRow();
dr[0] = 2;
dr[1] = "Boston Crab Meat";
dr[2] = 123;
dataTable.Rows.Add(dr);

// Now take care of DataGrid
DataGrid dg = new DataGrid();
dg.DataSource = dataTable;
dg.DataBind();

// We have a DataGrid object with some data in it.
// Lets export it to an Excel worksheet.

// Creat a new workbook
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];

// Exporting the contents of the DataGrid to the worksheet
worksheet.Cells.ImportDataGrid(dg, 0, 0, false);

// Save it as Excel file
workbook.Save("ExportDataGrid.xlsx");

HTML formatlı Verileri C#’ta Excel’e aktarma

Aspose.Cells HTML formatlı verileri bir Excel çalışma sayfasına aktarmanıza olanak tanır. API, verileri dışa aktarırken HTML biçimli metni ayrıştırır ve HTML’yi biçimlendirilmiş hücre değerlerine dönüştürür. Aşağıdaki örnek kodda DataTable, HTML formatlı metin içeriyor ve bunu ImportData yöntemini kullanarak bir Excel Belgesine aktarıyoruz.

// Prepare a DataTable with some HTML formatted values
DataTable dataTable = new DataTable("Products");

dataTable.Columns.Add("Product ID", typeof(int));
dataTable.Columns.Add("Product Name", typeof(string));
dataTable.Columns.Add("Units In Stock", typeof(int));

DataRow dr = dataTable.NewRow();
dr[0] = 1;
// Make text italicize
dr[1] = "<i>Aniseed</i> Syrup";
dr[2] = 15;
dataTable.Rows.Add(dr);

dr = dataTable.NewRow();
dr[0] = 2;
// Make text bold
dr[1] = "<b>Boston Crab Meat</b>";
dr[2] = 123;
dataTable.Rows.Add(dr);

// Create export options
ImportTableOptions exportOptions = new ImportTableOptions();
exportOptions.IsFieldNameShown = true;
// Set IsHtmlString property to true as the data contains HTML tags. 
exportOptions.IsHtmlString = true;

// Create workbook
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];

worksheet.Cells.ImportData(dataTable, 0, 0, exportOptions);

workbook.Save("HTMLFormattedData_Out.xlsx");
HTML Biçimli Verilerin Elektronik Tabloya Dönüştürülmesi

HTML Dışa Aktarılan Verilerin Excel Belgesine Çıktısı

HTML Dosyasını C#’ta Excel’e Aktarma

Aspose.Cells bir HTML dosyasını Excel’e aktarmamızı sağlar. HTML dosyası Microsoft Excel odaklı olmalı yani MS-Excel dosyayı açabilmelidir.

// An HTML file
string filePath = "Book1.html";

// Instantiate LoadOptions specified by the LoadFormat.
HtmlLoadOptions loadOptions = new HtmlLoadOptions(LoadFormat.Html);

// Create a Workbook object and open the HTML file.
Workbook wb = new Workbook(filePath, loadOptions);

// Save the file as Excel Document
wb.Save("Book1_out.xlsx");

JSON Verilerini C#’ta Excel’e Aktarma

Bazen JSON Verilerini bir Excel belgesine aktarmamız gerekebilir. Aspose.Cells ile bunu birkaç satır kodla kolayca yapabiliriz. Aspose.Cells, JSON verilerini bir Excel belgesine aktarmak için ImportData yöntemine sahip bir JsonUtility sınıfı sağlar. ImportData yöntemi, JsonLayoutOptions nesnesini parametre olarak kabul eder. JsonLayoutOptions sınıfı, JSON düzeninin seçeneklerini temsil eder ve aşağıdaki özelliklere sahiptir.

  • ArrayAsTable: Indicates whether the array should be processed as a table.
  • ConvertNumericOrDate: Gets or sets a value that indicates whether the string in JSON is to be converted to numeric or date.
  • DateFormat: Gets and sets the format of the date value.
  • IgnoreArrayTitle: Indicates whether to ignore the title if the property of the object is an array.
  • IgnoreNull: Indicates whether the null value should be ignored.
  • IgnoreObjectTitle: Indicates whether to ignore the title if the property of the object is an object.
  • NumberFormat: Gets and sets the format of the numeric value.
  • TitleStyle: Gets and sets the style of the title.

Aşağıdaki örnek kodda, JSON verilerini C# dilinde bir Excel dosyasına aktarıyoruz.

// Instantiating a Workbook object
Workbook workbook = new Workbook();
Worksheet worksheet = workbook.Worksheets[0];

// Read JSON file
string jsonInput = File.ReadAllText("Sample.json");

// Set Styles
CellsFactory factory = new CellsFactory();
Style style = factory.CreateStyle();
style.HorizontalAlignment = TextAlignmentType.Center;
style.Font.Color = System.Drawing.Color.BlueViolet;
style.Font.IsBold = true;

// Set JsonLayoutOptions
JsonLayoutOptions options = new JsonLayoutOptions();
options.TitleStyle = style;
options.ArrayAsTable = true;

// Export JSON Data
JsonUtility.ImportData(jsonInput, worksheet.Cells, 0, 0, options);

// Save Excel file
workbook.Save("ExportingJsonData.xlsx");
{
  "quiz": {
    "sport": {
      "q1": {
        "question": "Which one is correct team name in NBA?",
        "answer": "Huston Rocket"
      }
    },
    "maths": {
      "q1": {
        "question": "5 + 7 = ?",
        "answer": "12"
      },
      "q2": {
        "question": "12 - 8 = ?",
        "answer": "4"
      }
    }
  }
}
JSON Verilerini Excel Belgesine Dönüştürme

JSON Verilerini Excel’e Aktarma

CSV Verilerini C#’ta Excel’e Aktarma

Virgülle ayrılmış değerler (CSV) dosyası, değerleri ayırmak için virgül kullanan sınırlandırılmış bir metin dosyasıdır. Bir CSV dosyası genellikle tablo verilerini (sayılar ve metin) düz metin olarak saklar; bu durumda her satırda aynı sayıda alan bulunur.

Aşağıdaki kod örneği, Aspose.Cells kütüphanesini kullanarak bir CSV dosyasını nasıl açıp Excel dosyası olarak kaydedebileceğimizi göstermektedir.

// Instantiate LoadOptions with CSV LoadFormat.
LoadOptions loadOptions = new LoadOptions(LoadFormat.CSV);

// Open CSV file as a Workbook object
Workbook wb = new Workbook("Business-Price.csv", loadOptions);

// Save the file as an Excel Documnt
wb.Save("CSVAsAnExcelDocument.xlsx");
Bir CSV dosyasını Elektronik Tablo Belgesinde açma

CSV’yi Excel Belgesine Dönüştürme

Çözüm

Bu yazıda Array, DataTable, DataView, DataGrid ve GridView’dan C#’ta verileri Excel’e ne kadar kolay aktarabileceğinizi gördünüz. Ayrıca HTML, JSON, CSV Verilerini bir Excel çalışma sayfasına nasıl aktaracağınızı da gördünüz. Bunlar ve Aspose.Cells API’nin sunduğu diğer birçok özellik hakkında daha fazla bilgi edinmek için lütfen belgeleri inceleyin. Herhangi bir sorunuz varsa lütfen Destek Forumumuz aracılığıyla bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız