VSTO写入Excel中的单元格!

5 .net c# excel

为什么这样做:

((Excel.Worksheet)Application.ActiveSheet).get_Range("A1", "A1").Value2 = text;
Run Code Online (Sandbox Code Playgroud)

但这不是:

Excel.Worksheet activeSheet = ((Excel.Worksheet)Application.ActiveSheet);
activeSheet.Cells[0, 0] = text;
Run Code Online (Sandbox Code Playgroud)

我需要第二种方式,因为我需要使用rowIndex和colIndex循环.我怎样才能做到这一点?

我收到错误:

mscorlib.dll中发生未处理的"System.Runtime.InteropServices.COMException"类型的异常附加信息:来自HRESULT的异常:0x800A03EC

Pau*_*ter 13

您唯一缺少的是(除了使用基于1的索引之外)是将单元格引用显式地转换为范围:

Excel.Worksheet activeSheet = ((Excel.Worksheet)Application.ActiveSheet);
int endRow = 5;
int endCol = 6;

for(int idxRow = 1; idxRow <= endRow; idxRow++)
{
    for(int idxCol = 1; idxCol <= endCol; idxCol)
    {
        ((Excel.Range)activeSheet.Cells[idxRow, idxCol]).Value2 = "Kilroy wuz here";
    }
}
Run Code Online (Sandbox Code Playgroud)

  • +1我只想让阅读此内容的人知道填充大量单元格值的更快方法是使用对象[,]例如:http://stackoverflow.com/a/3847094/495455 (2认同)