Some small commetns to your code:
1. Always use excel in a try catch block, they are prone to errors outside your control.
2. You should use xlWorkSheet.Cells[i + 1, j + 1].Value = cell.Value.ToString(). The excel cell has many fields .Formula .Format etc, you should always specify whitch one you use, and it can in some circumstances generate an error.
The last thing I would say is that you can also use
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.Active; There are some excel versions that starts with three blank sheets (I think this is the default setting) active would normally get the first.
[Edit]Also always include the dll file form the excel version you are using, small differences in versions can make it crash otherwise.[/Edit]
Otherwise; Happy coding