C # - эффективно писать содержимое файла Excel - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь записать содержимое массива в файл Excel - от С1 до длины массива.
О теме написания нескольких ячеек одновременно я нашел этот пост , но, как вы можете видеть в моем предыдущем вопросе , такое решение действительно неэффективно.Я хотел бы что-то вроде

Excel.Range range = worksheet.Range["A1", "A" + myArray.Length];
range.Value2 = myArray;

Если я сделаю это, приложение рухнет.Не исключение, оно просто становится пустым окном.У вас есть идея, что мне следует сделать, чтобы эффективно записать содержимое массива в столбец?

TIA

1 Ответ

0 голосов
/ 05 декабря 2018

Это довольно не элегантно и грубо, но если вы хотите опираться на сторону Excel / Interop, лучший способ сделать это - вставить массив объектов непосредственно в свойство Value диапазона.Это пример вставки простого массива в столбец:

// just a sample array
int[] array = new int[11] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };

object[,] pasteMe = new object[array.Length, 1];
for (int i = 0; i < array.Length; i++)
    pasteMe[i, 0] = array[i];

worksheet.Range["A1", "A" + array.Length].Value2 = pasteMe;

Я думаю, что вам не хватало того, что вам нужен 2d массив, так как диапазоны Excel имеют длину и ширину.

Доказательство того, что это работает:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...