我想用EXCEL做报表,但是EXCEL有固定的模板,我想在一个行内插如一行,这样模板格式就不会被破坏,可是我用
range.Select();
((Excel.Range) worksheet.Cells[10,2]).EntireRow.Insert(0); 
系统出错提示信息:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dllAdditional information: 类 Range 的 Select 方法无效
有谁知道,分不够再加啊~~只要能解决问题

解决方案 »

  1.   

    Excel中,cell就是最小的处理单元,不能在一个cell中再插入一行,只能在一行的前面或者后面插入新行。出错是正常的。
      

  2.   

    那我该如何写呢??
    我制作个宏,代码如下
        Rows("10:10").Select
        Range("H10").Activate
        Selection.Insert Shift:=xlDown
    可是我用C#该如何转换呢??
      

  3.   

    http://www.microsoft.com/china/MSDN/library/Office/default.mspx
      

  4.   

    http://www.microsoft.com/china/msdn/library/office/office/odc_offcs.mspx
      

  5.   

    示例 6:默认属性和索引属性
    Word 2002 很少用到默认属性和索引属性,而 Excel 2002 却经常用到它们,因此本示例 (excel1.cs) 利用了这一事实。同所有 Office XP 互操作代码一样,本示例程序从实例化 Application 对象开始。创建工作簿和工作表后,创建了一个用于保存列标题的字符串数组。创建完该数组后,您将看到如下代码片段:wksRange = wks.get_Range("A2", "D2");此代码获取单元格 A2 到 D2 的 Range 对象。但既然工作表有一个 Range 属性,为什么还需要直接调用访问函数呢?并且这样做为何不象通常那样会产生语法错误?与 Visual Basic 和 Visual C++ 不同,C# 没有适用于索引属性的语法结构。要在 C# 中使用索引属性,就必须直接调用访问函数。_Worksheet.Range 属性便是一个很好的例子。要在 Visual C++ 中获取 Range 属性的值,代码应如下所示:myRange = myWorksheet->Range["A2", "D2"];要在 C# 中执行相同的操作,代码则应如下所示:myRange = myWorksheet.get_Range("A2", "D2");设置 Range 属性,而不是向其赋值,是对 set 访问函数的调用:myWorksheet.set_Range("A2", "D2", myRange);Microsoft Excel 2000 中的 Range.Value 属性是一个常规属性,但在 Excel 2002 中,则变成了一个索引属性。这就是为什么在本示例程序中使用该属性时要将其括在 #if OFFICEXP 语句中的原因。_Workbook.Worksheets 具有所谓的默认属性。默认属性在互操作程序集中被看作是名称为 Item 的属性。通常必须指定 Item 成员才能从 C# 使用默认属性,但是在 Excel 库中,TLBIMP 只需少量代码就可以创建称为 get__Default 或 set__Default 的访问函数。如果这两个访问函数存在,C# 就可以使用索引生成器语法而不是直接调用访问函数。本示例中的这两行代码如下所示:_Worksheet wks2 = (_Worksheet)wkb.Worksheets["Market Share!"];
    ((_Worksheet)wkb.Worksheets["Market Share!"]).Name = "Fred";如何生成和运行 excel1.cs&#8226; 要生成 excel1.cs,可以在 Visual Studio .NET Command Prompt(Visual Studio .NET 命令提示)窗口中执行以下操作:打开保存 excel1.cs 源文件的目录(例如 C:\CSOfficeSamples 目录),在命令提示后键入 csc /r:"C:\Office XP PIAs\Microsoft.Office.Interop.Excel.dll" /d:OFFICEXP excel1.cs。(如果 Office XP PIA 保存在其他位置,则需要使用相应值替换下面的“驱动器”和“安装路径”:csc /r:驱动器:\<安装路径>\Microsoft.Office.Interop.Excel.dll /d:OFFICEXP excel1.cs。) 
     
    &#8226; 要运行 excel1.exe(与 excel1.cs 源文件位于同一文件夹中),双击该程序即可。
     返回页首