Yazı Font Küçült Yazı Font Büyült

Excel Sayfasında Oluşturulan Tabloda ki Sütunun DataBar lı Gösterimi

Merhaba arkadaşlar bu makalemizde Sql veritabanındaki verileri alıp excel sayfasında tablo oluşturacağız. Bu örnekte Fiyat sütununu; excel sayfasında oluşturacağımız tabloda databar lı bir şekilde gösterimini sağlayacağız.

Screenshot

 

Resim1

Şekil 1

Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using Excel = Microsoft.Office.Interop.Excel;

 

namespace excel_add_sql

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        SqlConnection baglan;

        SqlDataAdapter da;

        DataSet ds;

        object misValue = System.Reflection.Missing.Value;

        private void btnExceleAktar_Click(object sender, EventArgs e)

        {

            baglan = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|kategori.mdf;Integrated Security=True;Connect Timeout=30");

            string sql = "Select * From [Table]";

            da = new SqlDataAdapter(sql, baglan);

            ds = new DataSet();

            da.Fill(ds);

           

 

            Excel.Application xlApp;

            Excel.Workbook xlWorkBook;

            Excel.Worksheet xlWorkSheet;

            object misValue = System.Reflection.Missing.Value;

            Excel.Range chartRange;

 

            xlApp = new Excel.Application();

            xlWorkBook = xlApp.Workbooks.Add(misValue);

            xlWorkSheet = xlWorkBook.Sheets["Sayfa1"];

 

        

            //veritabanindan sutun isimlerini aliyoruz.

            for (int i = 0; i < ds.Tables[0].Columns.Count; i++)

            {

               //2. satirdan itibaren sutun isimlerini excel hucrelerine yaziyoruz.

                xlWorkSheet.Cells[2, i+2] = ds.Tables[0].Columns[i].ToString();

               

            }

 

 

            //veritabanindanverileri aliyoruz.

            for (int j =0; j < ds.Tables[0].Rows.Count ; j++)

            {

                xlWorkSheet.Cells[j+3, 2] = ds.Tables[0].Rows[j].ItemArray[0].ToString();

                xlWorkSheet.Cells[j + 3,3] = ds.Tables[0].Rows[j].ItemArray[1].ToString();

                xlWorkSheet.Cells[j +3, 4] = ds.Tables[0].Rows[j].ItemArray[2].ToString();

                xlWorkSheet.Cells[j + 3, 5] = ds.Tables[0].Rows[j].ItemArray[3].ToString();

            }

 

            //excel sayfasinda tablo basligimizi ekliyoruz

            chartRange = xlWorkSheet.Range["b1", "e1"];

            //b1.. e1 hucrelerini birlestiriyoruz.

            chartRange.Merge();

            chartRange.FormulaR1C1 = "DUNYA KLASIKLERİ";

            chartRange.HorizontalAlignment = 4;

            chartRange.VerticalAlignment = 4;

            chartRange.Cells.Font.Bold = true;

            chartRange.Cells.Font.Size = 16;

           

            // sutun isimlerini a2.. e2 hucrelerine ekliyoruz.

            chartRange = xlWorkSheet.Range["b2", "e2"];

            chartRange.HorizontalAlignment = 4;

            chartRange.VerticalAlignment = 4;

 

          

            //tablo sinir cizgilerini belirleyecegimiz hucreleri belirtiyoruz.

            chartRange = xlWorkSheet.Range["b2", "e12"];

            chartRange.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, Excel.XlColorIndex.xlColorIndexAutomatic);

            //tablo cizgilerinin rengini belirliyoruz

            chartRange.Borders.Color = Color.Navy;

            //tablonun cizgi stilini belirliyoruz.

            chartRange.Borders.LineStyle = 2;

            //tablonun cizgi kalinligini belirliyoruz.

            chartRange.Borders.Weight = 2;

 

            //e hucrelerine databar i ekliyoruz.

            chartRange = xlWorkSheet.Range["e3", "e12"];

            chartRange.FormatConditions.AddDatabar();

            chartRange.FormatConditions[chartRange.FormatConditions.Count].ShowValue = true;

            chartRange.FormatConditions[chartRange.FormatConditions.Count].SetFirstPriority();

            //databarin rengini belirliyoruz.

            chartRange.FormatConditions[1].BarColor.color = Color.OrangeRed;

               

            chartRange.FormatConditions[1].BarColor.TintAndShade = 0;

            //excel dosyasini kaydediyoruz.

            xlWorkSheet.SaveAs(@"D:\databar.xlsx");

            xlWorkBook.Close();

            xlApp.Quit();

 

            releaseObject(xlApp);

            releaseObject(xlWorkBook);

            releaseObject(xlWorkSheet);

 

            MessageBox.Show("Excel dosyasi olusturuldu !");

       

        }

 

        private void releaseObject(object obj)

        {

            try

            {

                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);

                obj = null;

            }

            catch (Exception ex)

            {

                obj = null;

            }

            finally

            {

                GC.Collect();

            }

        }

 

 

        }

    }

 

 

 

Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN