İçeriğe geç

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
0 0 votes
Article Rating
Tarih:Asp.Net - C#Çerez Bilgiler
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x