Сейчас я переделал через EPPlus. Работает очень быстро.
Оригинал код я уже удалил (Interop.Excel).
Но была такая схема: в List объектов получаем данные из базы, далее в цикле перебираем это лист, вставляем в excel. Код вставки типа того:
DateTime start2 = DateTime.Now;
int i = 1;
foreach (var item in list)
{
i++;
sheet.Cells[i, 1] = item.itemName1;
sheet.Cells[i, 2] = item.itemName2;
sheet.Cells[i, 3] = item.itemName3;
sheet.Cells[i, 4] = item.itemName4;