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