Visual C#使用Excel Interop一次设置多个单元格
我写了一个c#应用程序,这是我的第一个应用程序之一(我是这里的noob)!该应用程序使用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
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