Вы пытались установить все значения одновременно, вместо того, чтобы перебирать массив и устанавливать по одной ячейке за раз?Таким образом, вам нужно будет передавать данные через границу COM только один раз, а не один раз на ячейку.
Excel очень гибок в этом отношении.Попробуйте следующее:
int[] intArray = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Range rng = excelApp.get_Range("A1", "J1");
rng.Value = intArray;
Это должно быть быстрее, чем итерация по каждой ячейке, которую вы хотите установить.
Кроме этого, отключите ScreenUpdated, как предлагает Энди, а также подумайтеустановка расчета вручную, пока вы не закончили процесс копирования.