代码之家  ›  专栏  ›  技术社区  ›  TimB

C-高效地编写Excel文件内容

  •  2
  • TimB  · 技术社区  · 7 年前

    我试图将数组的内容写入Excel文件-从c1到数组的长度。
    关于一次写多个单元格的主题 this post 但是正如你所看到的 in my previous question 这样的解决方案真的效率很低。我想要一些符合

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

    但是,如果我这样做,应用程序就会崩溃。也不例外,它只是变成了一个空白窗口。您知道我应该怎么做才能有效地将数组内容写入列吗?

    蒂亚

    1 回复  |  直到 7 年前
        1
  •  1
  •   Hambone    7 年前

    这是非常不雅和暴力的,但是如果您想依靠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;
    

    我认为您缺少的是需要一个二维数组,因为Excel范围既有长度又有宽度。

    证明它有效:

    enter image description here