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




 

 

 

 

Ş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

About Bahadır Şahin

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.

0 comments:

Öne Çıkan Yayın

GridView da Seçili Satırı DetailsView da Göstermek

Merhaba arkadaşlar bu makalemizde GridView nesnesi ile birlikte DetailsView nesanesini birlikte kullanacağız. GridView da seçili satırın de...