Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual C#使用Excel Interop一次设置多个单元格_C#_Excel_Visual Studio - Fatal编程技术网

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

Visual C#使用Excel Interop一次设置多个单元格,c#,excel,visual-studio,C#,Excel,Visual Studio,我写了一个c#应用程序,这是我的第一个应用程序之一(我是这里的noob)!该应用程序使用Excel Interop并设置了大量单元格,这需要非常长的时间。在那之后,我听说可以在一次通话中设置一个小区范围。这就是我正在尝试做的,虽然有几个关于这个主题的线程,但没有一个对我有效,或者我没有得到它 当你在谷歌上搜索时,大多数人都会推荐这种方法: Excel.Range rng = (Excel.Range)xlWorkSheet.get_Range(xlWorkSheet.Cells[1, 1], x

我写了一个c#应用程序,这是我的第一个应用程序之一(我是这里的noob)!该应用程序使用Excel Interop并设置了大量单元格,这需要非常长的时间。在那之后,我听说可以在一次通话中设置一个小区范围。这就是我正在尝试做的,虽然有几个关于这个主题的线程,但没有一个对我有效,或者我没有得到它

当你在谷歌上搜索时,大多数人都会推荐这种方法:

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\u Range
的东西。但我的问题是,我无法在工作表、工作簿或初始化的excel应用程序上执行get_Range。这个方法不存在,我觉得我在网上找到的东西都过时了


我真的希望有人能帮我解决这个问题:)我想一次设置一行,或者如果它不太复杂,可以设置一整张表。

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

还要注意,将该值设置为一维数组将导致如下输出,这可能不是您想要的:

以下代码修复了这两个问题:

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