MVCSHARP Ailesi ile yazılım geliştirmeye dair makaleler

Excel Dosyası oluşturma

Merhaba arkadaşar bugün sizler ile List<T> tipinde verilerimizi excel ortamına aktarıcaz. 

Öncelikle buradan  projemize ekleyeceğimiz ClosedXML kütüphanesini indirelim ve projemize ekleyelim.

Arkadaşlar örneğimiz kısa ve basit olacaktır biraz açıklayalım. örneğimizde kişi ve araba tipinde 2 adet liste kullanacağız ve bu listeleri excel dosyası olarak dışa aktaracağız.

O halde veri tiplerimizi hazırlayalım.

Kişi işle başlayalım;

 public class Person
    {
        public Person(string name, string surname, int age)
        {
            Name = name;
            SurName = surname;
            Age = age;
        }
        public string Name { get; set; }
        public string SurName { get; set; }
        public int Age { get; set; }
    }

 

Şimdide araba modelimizi hazırlayalım

    public class Car
    {
        public Car(string brand, string color, int age)
        {
            Brand = brand;
            Color = color;
            Age = age;
        }
        public string Brand { get; set; }
        public string Color { get; set; }
        public int Age { get; set; }
    }

 

Aslında tek bir veri tipi üzerinden de örneğimizi yapabilirdik. Araç tipini oluşturmamızdaki tek sebep aynı çalışma kitabı içerisinde 2. çalışma sayfasını nasıl oluşturduğumuzu daha iyi kavramak.

Veri tiplerini oluşturduğumuza göre haydi biraz veri ekleyelim.

 public class DataSource
    {

        public List<Person> PersonList = new List<Person>();
        public List<Car> CarList = new List<Car>();

        public DataSource()
        {

            PersonList.Add(new Person("Fatih", "BÜLBÜL", 25));
            PersonList.Add(new Person("Yener", "KANAT", 35));
            PersonList.Add(new Person("Ramazan", "EYMUR", 30));
            PersonList.Add(new Person("Talha", "AYDEMİR", 20));
            PersonList.Add(new Person("Durmuş", "YILMAZ", 22));
            PersonList.Add(new Person("Semih", "SİPAHİ", 26));
            PersonList.Add(new Person("Cenap", "İÇTEN", 29));
            PersonList.Add(new Person("Kürşat", "TATAR", 23));
            PersonList.Add(new Person("Emre", "KORKMAZ", 28));



            CarList.Add(new Car("Abarth", "Red", 1999));
            CarList.Add(new Car("Alfa Romeo", "Green", 2010));
            CarList.Add(new Car("Corvette", "Blue", 1985));
            CarList.Add(new Car("Ford", "Black", 1990));
            CarList.Add(new Car("Jaguar", "White", 1992));
            CarList.Add(new Car("Jeep", "Yellow", 1986));
            CarList.Add(new Car("Kia", "Orange", 2015));
            CarList.Add(new Car("KTM", "Aqua", 2000));
            CarList.Add(new Car("Lamborghini", "Pink", 1999));

        }
    }

 

Evet arkadaşlar buraya kadar yazdığımız kodlar sadece elimizde bir List<T> tipi olması içindi.

Şimdi excel dosyamızı oluşturmaya başlayabiliriz.

Öncelikle veri kaynağımızın örneğini alalım

var source = new DataSource();

//Kişi verileri
var persons = source.PersonList;

//Araç verileri
var cars = source.CarList;

Şimdi yeni bir çalışma kitabı örnekleyelim

//Kitabımız
var workbook = new XLWorkbook();

Kitabımıza çalışma sayfası açalım

//Kitabımıza kişiler adında yeni sayfa ekledik
var PersonWorksheet = workbook.Worksheets.Add("Persons");

Şimdi header bölümümüzü oluşturalım. 

//Kişilerin başlıkları
PersonWorksheet.Cell("A1").Value = "Adı";
PersonWorksheet.Cell("B1").Value = "Soyadı";
PersonWorksheet.Cell("C1").Value = "Yaşı";

/*FARKLI KULLANIM 
PersonWorksheet.Cell(1, "C").Value = "Yaşı";
PersonWorksheet.Cell(1, "C").SetValue("Yaşı");
*/

 

Başlıkları hazırladığımıza göre satır satır verilerimizi doldurabiliriz.

var row = 2;

//Kişileri doldurduk
for (int i = 0; i < persons.Count; i++)
{
    Person person = persons[i];    

    PersonWorksheet.Cell(row, "A").Value = person.Name;
    PersonWorksheet.Cell(row, "B").Value = person.SurName;
    PersonWorksheet.Cell(row, "C").Value = person.Age;

    row++;
}

Evet arkadaşlar şuanda kişiler sayfamızı oluşturduk ve verilerimizi doldurduk. Aynı işlemleri araçlarımız için de yapalım

//Kitabımıza araçlar adında yeni sayfa ekledik
var CarWorksheet = workbook.Worksheets.Add("Cars");

//Araçların başlıkları
CarWorksheet.Cell("A1").Value = "Marka";
CarWorksheet.Cell("B1").Value = "Renk";
CarWorksheet.Cell("C1").Value = "Yaşı";

row = 2;

//Araçları doldurduk
for (int i = 0; i < cars.Count; i++)
{
    Car car = cars[i];
    
    CarWorksheet.Cell(row, "A").Value = car.Brand;
    CarWorksheet.Cell(row, "B").Value = car.Color;
    CarWorksheet.Cell(row, "C").Value = car.Age;

    row++;

}

 

Sıra geldi kayıt işlemimize,

Ben dosya isminin benzersiz olması için Random sınıfından faydalanıcam.

var rnd = new Random();

string filePath = string.Format("/content/persons_{0}_ex.xlsx", rnd.Next(0, 9999));
 workbook.SaveAs(HttpContext.Current.Server.MapPath(filePath));

 

Sonuç ekranı

Evet arkadaşlar excel dosyamızı kaydettik.Faydalı bulduğum bu kütüphaneyi sizlerle paylaşmak istedim umaraım faydasını görürsünüz, hayırlı uğurlu olsun cool 

Kaynak linkleri aşağıdadır. Gayet başarılı bir kütüphanedir. İhtiyacınız olduğunda eminim çok işinize yarayacaktır.

Kaynak : https://closedxml.codeplex.com/

Daha fazla bilgi için : https://closedxml.codeplex.com/documentation

Projemizi buradan indirebilirsiniz

 

Facebook Üzerinden Yorumlar