Я пытаюсь записать содержимое массива в файл excel - от C1 до длины массива.
Что касается темы написания нескольких ячеек сразу, я нашел этот пост, но, как вы можете видеть в моем предыдущем вопросе, такое решение действительно неэффективно. Мне хотелось бы что-то вроде
Excel.Range range = worksheet.Range["A1", "A" + myArray.Length];
range.Value2 = myArray;
Если я это сделаю, приложение выйдет из строя. Не исключение, оно просто становится пустым окном. У вас есть идея, что я должен сделать, чтобы эффективно написать массив в столбце?
ТИА
Это довольно неэлегантная и грубая сила, но если вы хотите опираться на сторону 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 имеют длину и ширину.
Доказательство: