• 21-10-2020, 12:43:03
    #1
    Merhaba c# ile excel çıktısı alırken bir problemim var bilgili olan biri mesaj atabilir mi lütfen?

    Problem : Bir veri tabanım var firma numaralarına ait kayıtlar var bir alanda bayi sonu yazıyor ben bu bayi sonu dediği yerden itibaren o firmaya ait olan alttaki kayıtları almayıp boş gönderiyorum fakat benim işimi bu şekil görmüyor ne olursa olsun bayi sonundan sonra 22 satır boşluk bırakıp excele göndermek istiyorum yani firma 2 verileri toplamda 50 satır yer kaplayacak firma 3 verileri toplamda 50 satır yer kaplayacak bayi sonuna kadar gelen kısım 28 satır geri kalan 22 satırı boş göndermeye çalısıyorum fakat ne yaptıysam yapamadım çok basit olduğunu biliyorum ama kafam durdu

    Kodlarım :
    int i = 0;
    int j = 0;
    for (i = 1; i < dg.Columns.Count + 1; i++)
    {
    if (dg.Columns[i - 1].Visible)
    {
    xlWorkSheet.Cells[1, i] = dg.Columns[i - 1].HeaderText;
    }
    }
     
    for (i = 0; i <= dg.RowCount-1; i++)
    {
    var desc = dg[2, i].Value;
    firmaNo = Convert.ToInt32(dg[0, i].Value);
     
    if (firmaNoYeni == 0)
    {
    firmaNoYeni = Convert.ToInt32(dg[0, i+1].Value);
    }
     
     
    if (desc.Equals("-BAYISONU-"))
    {
    bayiSonumu = true;
    for (j = 0; j <= dg.ColumnCount - 1; j++)
    {
    DataGridViewCell cell = dg[j, i];
    xlWorkSheet.Cells[i + 2, j + 1] = cell.Value;
    }
    i++;
    }
     
    if(!bayiSonumu)
    {
    for (j = 0; j <= dg.ColumnCount - 1; j++)
    {
    DataGridViewCell cell = dg[j, i];
    xlWorkSheet.Cells[i + 2, j + 1] = cell.Value;
    }
    x++;
    }
     
    else if(bayiSonumu)
    {
     
    for (j = 0; j <= dg.ColumnCount - 1; j++)
    {
    xlWorkSheet.Cells[i + 2, j + 1] = " ";
    }
    if (firmaNoYeni != firmaNo)
    {
     
    for (j = 0; j <= dg.ColumnCount - 1; j++)
    {
    DataGridViewCell cell = dg[j, i];
    xlWorkSheet.Cells[i + 2, j + 1] = cell.Value;
    }
     
    bayiSonumu = false;
    firmaNoYeni = 0;
    }
                            }
  • 21-10-2020, 12:44:17
    #2
    problemi paylaşsan daha sağlıklı olurdu
  • 21-10-2020, 12:47:43
    #3
    SocialDate adlı üyeden alıntı: mesajı görüntüle
    problemi paylaşsan daha sağlıklı olurdu

    Hocam bir veri tabanım var firma numaralarına ait kayıtlar var bir alanda bayi sonu yazıyor ben bu bayi sonu dediği yerden itibaren o firmaya ait olan alttaki kayıtları almayıp boş gönderiyorum fakat benim işimi bu şekil görmüyor ne olursa olsun bayi sonundan sonra 22 satır boşluk bırakıp excele göndermek istiyorum yani firma 2 verileri toplamda 50 satır yer kaplayacak firma 3 verileri toplamda 50 satır yer kaplayacak bayi sonuna kadar gelen kısım 28 satır geri kalan 22 satırı boş göndermeye çalısıyorum fakat ne yaptıysam yapamadım çok basit olduğunu biliyorum ama kafam durdu

    int i = 0;
    int j = 0;
    for (i = 1; i < dg.Columns.Count + 1; i++)
    {
    if (dg.Columns[i - 1].Visible)
    {
    xlWorkSheet.Cells[1, i] = dg.Columns[i - 1].HeaderText;
    }
    }
    
    for (i = 0; i <= dg.RowCount-1; i++)
    {
    var desc = dg[2, i].Value;
    firmaNo = Convert.ToInt32(dg[0, i].Value);
    
    if (firmaNoYeni == 0)
    {
    firmaNoYeni = Convert.ToInt32(dg[0, i+1].Value);
    }
    
    
    if (desc.Equals("-BAYISONU-"))
    {
    bayiSonumu = true;
    for (j = 0; j <= dg.ColumnCount - 1; j++)
    {
    DataGridViewCell cell = dg[j, i];
    xlWorkSheet.Cells[i + 2, j + 1] = cell.Value;
    }
    i++;
    }
    
    if(!bayiSonumu)
    {
    for (j = 0; j <= dg.ColumnCount - 1; j++)
    {
    DataGridViewCell cell = dg[j, i];
    xlWorkSheet.Cells[i + 2, j + 1] = cell.Value;
    }
    x++;
    }
    
    else if(bayiSonumu)
    {
    
    for (j = 0; j <= dg.ColumnCount - 1; j++)
    {
    xlWorkSheet.Cells[i + 2, j + 1] = " ";
    }
    if (firmaNoYeni != firmaNo)
    {
    
    for (j = 0; j <= dg.ColumnCount - 1; j++)
    {
    DataGridViewCell cell = dg[j, i];
    xlWorkSheet.Cells[i + 2, j + 1] = cell.Value;
    }
    
    bayiSonumu = false;
    firmaNoYeni = 0;
    }
                            }
  • 21-10-2020, 13:07:00
    #4
    tam olarak anlamadım ama bayi sonu dediğin kısımda kaçıncı satırda olduğunu alıp toplam satır sayısından çıkartıp kalan satır sayısı kadar boş kayıt oluşturmak için " " (boşluk) kayıt oluştur. bazen "" verdiğinde kayıt oluşmayabiliyor.
  • 21-10-2020, 13:10:01
    #5
    SocialDate adlı üyeden alıntı: mesajı görüntüle
    tam olarak anlamadım ama bayi sonu dediğin kısımda kaçıncı satırda olduğunu alıp toplam satır sayısından çıkartıp kalan satır sayısı kadar boş kayıt oluşturmak için " " (boşluk) kayıt oluştur. bazen "" verdiğinde kayıt oluşmayabiliyor.

    Şimdi şöyle

    Firma 2'ye ait 50 satır kayıt var fakat 28. satırda " BAYİ SONU " diyor ben bunu alıyorum altındaki o firmaya ait olan kayıtları excele göndermiyorum boş gönderiyorum fakat Firma 2'nin bayi sonundan sonra 15 kayıtı var ise Firma 3'ün 20 kayıtı var eşit olmuyor ben ne olursa olsun altını 22 satır boşlukla tamamlamak istiyorum çünkü tüm firmalar bayi sonuna kadar 28 satır geliyor.
  • 21-10-2020, 13:12:00
    #6
    ozaman daha kolay. bayi sonuna geldiğinde bayi sonu true yapıcan sonra eğer bayi sonu true ise 22 boş satır ekleyip bayi sonunu false yapıp sonrasında 3. firmanın kayıtlarına geçiceksin.
  • 21-10-2020, 13:13:37
    #7
    SocialDate adlı üyeden alıntı: mesajı görüntüle
    ozaman daha kolay. bayi sonuna geldiğinde bayi sonu true yapıcan sonra eğer bayi sonu true ise 22 boş satır ekleyip bayi sonunu false yapıp sonrasında 3. firmanın kayıtlarına geçiceksin.
    öyle yapıyorum fakat excelin satırları i ile döndüğü için bu sefer boş girdiğim kayıtların üzerine bir daha kayıt yazıyor aynı hesaba geliyo excel satırları için farklı bir değişken tutarak yazıcam şimdi olur umarım
  • 21-10-2020, 13:15:00
    #8
    o 22 satırı tabi eklemen lazım sayaca
  • 21-10-2020, 13:16:27
    #9
    SocialDate adlı üyeden alıntı: mesajı görüntüle
    o 22 satırı tabi eklemen lazım sayaca
    ekliyorum sonra i sayacını 22 arttırıyorum bu sefer i datagridin countuna göre dönüp data gridin içindeki verileri aldığı için orada dizin dışına çıkıyor