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维数组会导致类似以下,这可能不是输出你想要什么:
下面的代码解决了这两个问题:
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 } };
这导致在输出如下:
非常感谢,这会让我的应用快100倍:D – Stringering