我正在尝试将数组的内容写入Excel文件-从C1到数组的长度。
关于我发现一次写入多个单元格的主题
this post
,但如您所见
in my previous question
这样的解决方案确实效率很低。我想要一些
Excel.Range range = worksheet.Range["A1", "A" + myArray.Length];
range.Value2 = myArray;
但是,如果执行此操作,应用程序将崩溃。也不例外,它只是一个空白窗口。您是否知道如何将数组内容有效地写入列中?
TIA
答案 0 :(得分:1)
这是非常优雅和蛮力的,但是如果您想依靠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范围具有长度和宽度。
证明有效: