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

标签 c# excel visual-studio

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

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

最佳答案

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

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

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

关于c# - Visual C# 使用 Excel Interop 一次设置多个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38542748/

相关文章:

vba - [Excel][VBA] 如何在图表中画一条线?

visual-studio - 每个解决方案/项目的 Visual Studio 设置

c# - SlimDX9 - Device.Reset 与 RenderToSurface

c# - 为什么 LINQ to SQL 实体关联在插入新记录时创建新的(重复的)行?

c# - 从一个 session 中检索对象并在另一个 session 中更新 nHibernate

excel - vbscript,Excel 8.0 工作表上的密码

excel - 如何在 dd/mm/yyyy 格式的单元格中获取今天的日期?

c++ - dllexport/dllimport 是否忽略成员模板函数?

c# - 为什么 Browsable(false) 不隐藏 DataGrid 中的列

c# - 无法将 FileInfo.Name 项从 string[] 添加到 List<string> 字段