Visual C#使用Excel Interop一次性设置多个单元格

问题描述:

我写了一个c#应用程序,这是我的第一个应用程序(我在这里是noob)!该应用程序与Excel Interop一起工作,并设置了很多需要很长时间的单元。之后,我听说可以通过一次调用设置一系列单元格。这就是我想要做的,虽然有关于这个主题的几个主题,但他们都没有为我工作,或者我没有得到它。Visual C#使用Excel Interop一次性设置多个单元格

只要在Google,大多数人会认为这个方法:

Excel.Range rng = (Excel.Range)xlWorkSheet.get_Range(xlWorkSheet.Cells[1, 1], xlWorkSheet.Cells[3, 3]); 
rng.Value = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 

或至少get_Range东西。但我的问题是,我无法执行get_Range,既不在工作表上,也不在我的工作簿或初始化的Excel应用程序。该方法不存在,我觉得我在互联网上发现的都是过时的!

我真的希望有人能帮助我通过这:)我想设置一个行或如果它不是一次太复杂的整个表。

至少从Excel对象库版本15.0开始,get_Range()方法已被删除并替换为Range属性。该属性可用于执行与以前由get_Range()提供的功能相同的功能。

还要注意的是,值设置为1维数组会导致类似以下,这可能不是输出你想要什么:

Bad output

下面的代码解决了这两个问题:

var rng = (Excel.Range)xlWorkSheet.Range[xlWorkSheet.Cells[1, 1], xlWorkSheet.Cells[3, 3]]; 
rng.Value = new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; 

这导致在输出如下:

Good output

+0

非常感谢,这会让我的应用快100倍:D – Stringering