C# Excel’den Veri Okuma Örneği

Çok ufak görünen ancak yazılımcıların belki de en büyük dertlerinden biridir 2./3. parti yazılımlardan veya dosya formatlarından veri okumak. Yok karakter problemleri, yok nokta virgül harf hataları, yok satır atlamalar, vs… vs…

İşte buna bir nebze çözüm sağlayabilmek adına aşağıdaki şekilde kodunuzu geliştirebilirsiniz. Ancak elbette unutmamanız gereken en önemli şey;

Aşağıda linkini paylaşmış olduğum DLL’i kendi projenize referans olarak eklemeniz gerektiğidir.


public class Product
{
public string ProductName { get; set; }
public string CategoryName { get; set; }
public decimal Price { get; set; }
}

static void Main(string[] args)
{
List<Product> listAllProducts = new List<Product>();
string filePathTemp = @"C:\Kitap2.xlsx";
FileStream streamTemp = File.Open(filePathTemp, FileMode.Open, FileAccess.Read);

using (var package = new ExcelPackage(streamTemp))
{
var currentSheet = package.Workbook.Worksheets;
var workSheet = currentSheet.First();
var noOfCol = workSheet.Dimension.End.Column;
var noOfRow = workSheet.Dimension.End.Row;

for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++)
{
Product product = new Product();

product.ProductName = workSheet.Cells[rowIterator, 1].Value != null ? workSheet.Cells[rowIterator, 1].Value.ToString() : string.Empty; //Eğer hücre boş ise "tanımsız" gelir. bu durumda boş yazdır...

product.CategoryName = workSheet.Cells[rowIterator, 2].Value != null ? workSheet.Cells[rowIterator, 2].Value.ToString() : string.Empty; //Eğer hücre boş ise "tanımsız" gelir. bu durumda boş yazdır...

product.Price = workSheet.Cells[rowIterator, 3].Value != null ? decimal.Parse(workSheet.Cells[rowIterator, 3].Value.ToString()) : 0; //Eğer hücre boş ise "tanımsız" gelir. bu durumda değişken tipi de decimal olduğu için tanımsız/boş kalamaz default değer "0" olarak yazdır...

listAllProducts.Add(product); //Kendi oluşturduğum list tipindeki değişkene ekle...
}
}

foreach (var product in listAllProducts)
{
//Burada her bir product nesnesi için artık istediğim işlemi yapabilirim...
}
}

DLL'ini bu linkten indirebilirsiniz; EPPlus
Share this Story

Related Posts

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir

Search