Your compare code is inside the "per column" loop so is being run on every column. If you're only interested in the first column then move it out of that loop
for (j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
{
data = ds.Tables[0].Rows[i].ItemArray[j].ToString();
xlWorkSheet.Cells[ i+1, j+1] = data;
}
try
{
if (xlWorkSheetCarteProd.Cells[i, 0].Value ==
xlWorkSheetCarteProd.Cells[i + 1, 0].Value)
{
xlWorkSheetCarteProd.Cells[i +1, 0].Value = "";
}
}
catch{ }