VSTO写入Excel中的单元格!

时间:2009-05-13 05:22:24

标签: c# .net excel

为什么这样做:

((Excel.Worksheet)Application.ActiveSheet).get_Range("A1", "A1").Value2 = text;

但这不是:

Excel.Worksheet activeSheet = ((Excel.Worksheet)Application.ActiveSheet);
activeSheet.Cells[0, 0] = text;

我需要以第二种方式执行此操作,因为我需要使用rowIndex和colIndex进行循环。我怎么能这样做?

我收到错误:

  

未处理的类型异常   'System.Runtime.InteropServices.COMException'   发生在mscorlib.dll附加   信息:HRESULT的例外情况:   0x800A03EC

1 个答案:

答案 0 :(得分:11)

您唯一缺少的是(除了使用基于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";
    }
}