DataGridView To Exc...
 
Bildirimler
Hepsini Temizle

DataGridView To Excel  

  RSS
Mehmet UGUR
(@mehmetugur)
Üye

Merhaba. Windows From uygulamamda bulunan DataGridView deki verileri excel'e aktardım. Fakat ilk iki kolonun excel ortamına aktarılmasını istemiyorum sizce nasıl bir yol izleyebilirim ?

 private void btnExceleAktar_Click(object sender, EventArgs e)

        {

            try

            {

                saveFileDialog1.InitialDirectory = "C:";

                saveFileDialog1.Title = "Lütfen Kayıt Alanını Seçiniz";

                saveFileDialog1.FileName = "";

                saveFileDialog1.Filter = "Excel Files(2007)|*.xlsx|Excel Files(2003)|*.xls";

                if(saveFileDialog1.ShowDialog() == DialogResult.OK )

                {

                    Microsoft.Office.Interop.Excel.Application Uygulamaa = new Microsoft.Office.Interop.Excel.Application();

                    Uygulamaa.Application.Workbooks.Add(Type.Missing);

                    Microsoft.Office.Interop.Excel.Workbook Kitap = Uygulamaa.Workbooks.Add(System.Reflection.Missing.Value);

                    Microsoft.Office.Interop.Excel.Worksheet Sayfa1 = (Microsoft.Office.Interop.Excel.Worksheet)Kitap.Sheets[1];

                    Sayfa1.get_Range("A1", "Z1").Font.Bold = true;

                    Sayfa1.get_Range("A1", "Z1").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;

                    Sayfa1.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;

                    Sayfa1.Name = "VERİLER";

                    for (int i = 0; i < gridListe.Columns.Count; i++)

                    {

                        Microsoft.Office.Interop.Excel.Range Alan = (Microsoft.Office.Interop.Excel.Range)Sayfa1.Cells[1, i + 1];

                        Alan.Value2 = gridListe.Columns[i].HeaderText;

                    }

                    for (int i = 0; i < gridListe.Columns.Count; i++)

                    {

                        for (int j = 0; j < gridListe.Rows.Count; j++)

                        {

                            Microsoft.Office.Interop.Excel.Range Alan = (Microsoft.Office.Interop.Excel.Range)Sayfa1.Cells[j + 2, i + 1];

                            Alan.Value2 = gridListe[i, j].Value;

                        }

                    }

                    Uygulamaa.ActiveWorkbook.SaveCopyAs(saveFileDialog1.FileName.ToString());

                    Uygulamaa.ActiveWorkbook.Saved = true;

                    Uygulamaa.Quit();

                    MessageBox.Show("Excel Dosyanız: "+ saveFileDialog1.FileName.ToString()+ "\nYerine Başarılı Bir Şekilde Kayıt Edildi.");

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.ToString());

            }

        }

 

Alıntı
Gönderildi : 04/01/2015 22:36
Erdem SELÇUK
(@eravse)
Saygın Üye Forum Yöneticisi

grid collar arasında dondugunuz satırda 

  for (int i = 0; i < gridListe.Columns.Count; i++)

                    {

col ındexı ıle hangı kolonu eklemek ıstemıyorsanız bır ıf yazarak halledebılırsınız . 

CevapAlıntı
Gönderildi : 05/01/2015 00:58
Mehmet UGUR
(@mehmetugur)
Üye

[quote user="Erdem SELÇUK"]

grid collar arasında dondugunuz satırda 

  for (int i = 0; i < gridListe.Columns.Count; i++)

                    {

col ındexı ıle hangı kolonu eklemek ıstemıyorsanız bır ıf yazarak halledebılırsınız . 

[/quote]

 

Hocam ilk olarak cevap için teşekkür ederim. Aynen dedğiniz şekilde if denetimi yaptım if denetimine durma noktası koyup adım adım izledim. Fakat kod if blogüna giriyor fakat yine aynı herhalde ben mantık hatası yapıyorum 

 

                    Sayfa1.get_Range("A1", "Z1").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter;

                    Sayfa1.PageSetup.Orientation = Excel.XlPageOrientation.xlLandscape;

                    Sayfa1.Name = "VERİLER";

                    for (int i = 0; i < gridListe.Columns.Count; i++)

                    {

                        if(gridListe.Columns[0].ToString() == i.ToString() & gridListe.Columns[1].ToString() == i.ToString())

                        {

                            continue;

                        }

                        Microsoft.Office.Interop.Excel.Range Alan = (Microsoft.Office.Interop.Excel.Range)Sayfa1.Cells[1, i + 1];

                        Alan.Value2 = gridListe.Columns[i].HeaderText;

                    } 

CevapAlıntı
Gönderildi : 05/01/2015 01:23
Erdem SELÇUK
(@eravse)
Saygın Üye Forum Yöneticisi

Hocam continue niye kullanıyorsun ? tam tersini yaz != dıye yaz methodu ıcıne sok ozaman daha duzgun calıstırabılırsın ???*

CevapAlıntı
Gönderildi : 05/01/2015 18:57
Paylaş: