Forum

DataGridView To Exc...
 
Bildirimler
Hepsini Temizle

DataGridView To Excel

4 Yazılar
2 Üyeler
0 Reactions
466 Görüntüleme
(@mehmetugur)
Gönderiler: 275
Reputable Member
Konu başlatıcı
 

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());

            }

        }

 

 
Gönderildi : 04/01/2015 23:36

(@eravse)
Gönderiler: 1753
Üye
 

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 . 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 05/01/2015 01:58

(@mehmetugur)
Gönderiler: 275
Reputable Member
Konu başlatıcı
 

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 . 

 

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;

                    } 

 
Gönderildi : 05/01/2015 02:23

(@eravse)
Gönderiler: 1753
Üye
 

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

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 05/01/2015 19:57

Paylaş: