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;
}
                        }