20 Nisan 2013 Cumartesi

C# - Excel Aktarma ve Grafik Çizdirme

      Merhabalar, bu yazımda hepimizin işine yarayabilecek bir uygulamadan bahsedeceğim. Uygulamamızda random olarak ürettiğimiz 10 adet sayıyı Excel'e kaydeteceğiz ve grafik çizdireceğiz. İlk iş olarak Solutions Explorer penceresindeki References'e sağ tıklayıp Add Reference diyoruz. Açılan penceren Microsoft Office 14.0 Object Library ve Microsoft.Office.Interop.Excel'i ekliyoruz. Daha sonra using kısmında bunları belirtmemiz gerekiyor. using kısmına şunu ekliyoruz:

using OfficeExcel = Microsoft.Office.Interop.Excel;

      Öncelikle 10 random sayı üretiyoruz. Kod:         

private void button1_Click(object sender, EventArgs e)
{
    ArrayList liste = new ArrayList();
    Random sayi = new Random();
    for (int i = 0; i < 10; i++)
    {
        liste.Add(sayi.Next(0, 100));
    }
    ExcelAktar(liste);
}

      Sayılarımızı rastgele ürettik ve ExcelAktar fonksiyonumuza gönderdik. Kod:

static OfficeExcel.Application ExcelUygulama = new OfficeExcel.Application();
static OfficeExcel.Workbook ExcelKitap = ExcelUygulama.Workbooks.Add(Type.Missing);
static OfficeExcel.Worksheet ExcelSayfa = ExcelUygulama.ActiveSheet;
public void ExcelAktar(ArrayList liste)
{
   ExcelUygulama.Visible = true;
            
   //dizimizi excele aktarıyoruz öncelikle
   for(int i = 0; i < liste.Count; i++)
   {
       object hucre1 = ExcelSayfa.Cells[i+2, 2];
OfficeExcel.Range bolge1 =ExcelSayfa.get_Range(hucre1, hucre1);
bolge1.Value2 = liste[i];
   }

//grafik çizmek için gerekli nesnemizi oluşturduk öncelikle...
OfficeExcel.ChartObjects grafikciz = (OfficeExcel.ChartObjects)ExcelSayfa.ChartObjects(Type.Missing);
//grafiği nasıl çizeceğimi belirledim.. 4 parametre kullandık bu alanı belirtmek için
//1-soldan uzaklığı.. 2-üstten uzaklığı.. 3-alanın genişliği.. 4-alanın yüksekliği..
OfficeExcel.Chart grafik = grafikciz.Add(240, 15, 300, 300).Chart;
//burada excelden hangi hücredeki verileri kullarak grafik çizeceğimi belirttim
OfficeExcel.Range cizimalan = ExcelSayfa.get_Range("B2""B" + (liste.Count + 1));
//çizimimizi yaptırıyoruz..
grafik.SetSourceData(cizimalan, Type.Missing);
//grafiğimizin çizim şekli.
grafik.ChartType = OfficeExcel.XlChartType.xlLineMarkers;
//dosyayı kaydeteceğimiz yol.. ve kaydetme işlemi
string yol = @"C:\Users\PC\Desktop\" + DateTime.Now.ToShortDateString() + ".xlsx";
ExcelKitap.SaveAs(yol, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, OfficeExcel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
        
}

        İşte bu kadar basit. istediğiniz gibi kodları düzenleyebilirsiniz. dosyayı kaydeteceğiniz yeri, hangi hücrelere veri kaydeteceksiniz, grafiğin çizim alanı, grafik tipi, hangi verileri kullanarak grafik çizeceksiniz vs vs vs...  Kolay gelsin :)


1 yorum:

SQL Server - Satırları Birleştirme

Merhaba,  Bu yazımda sql server'da birden çok satırı birleştirip tek satır yapmayı anlatacağım. Senaryomuz şu şekilde olsun mesela; bir...