取得的Range 
使用它的方法Insert , 就在这前面插入一行
myRange.Insert(Type.Missing,Type.Missing);

解决方案 »

  1.   

    int rowIndex=0,colIndex=0,iExcelStartCol=0;
    ApplicationClass myApp=null;
    Workbook myBook=null;
    Worksheet mySheet=null;myApp= new ApplicationClass();
    myApp.Visible=true;

    object oMissiong=System.Reflection.Missing.Value;
    try
    {
    myApp.Workbooks.Open(outFilePath,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong,oMissiong);
    myBook=myApp.Workbooks[1];
    mySheet=(Worksheet)myBook.ActiveSheet;
    Range range = (Excel.Range)mySheet.Cells[1,1];
    //
    //取得表格中的数据
    //
    rowIndex=8;
    foreach(DataRowView row in dv)
    {
    if(rowIndex!=8)
    {
    range.Insert(Type.Missing); // 插入一行新的
    rowIndex=8;
    } iExcelStartCol=1;
             colIndex = 1;foreach(DataColumn col in dv.Table.Columns)
    {
    range = (Excel.Range)mySheet.Cells[rowIndex,iExcelStartCol];
    range.Value2=row[col.ColumnName].ToString();colIndex ++;
    iExcelStartCol++;

    mySheet.get_Range(mySheet.Cells[rowIndex,iExcelStartCol],mySheet.Cells[rowIndex,iExcelStartCol]).HorizontalAlignment = XlVAlign.xlVAlignCenter;//设置字符型的字段格式为居中对齐
    }
    rowIndex ++;
    }

    myBook.Save();
    myBook.Close( null,null,null);
    myApp.Workbooks.Close();
    myApp.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(mySheet);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(myBook);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(myApp); myBook=null;
    mySheet=null;
    myApp=null;
    GC.Collect();
    这是我的程序,可以插入数据,但原来下面的宏的那一行不会往下走,第一行的数据把宏那一行冲掉了,能帮我看看吗???  十分感谢!!!
    (其中宏在模版里是第九行,第八行是空行,第一次的数据放在第八行)
      

  2.   


    ....
    //
    //取得表格中的数据
    //
    rowIndex=8;
    ....改成:
    rowIndex=7;
      

  3.   

    这些东西你在office的帮助里面都可以找到,建议安装office2003,然后在帮助里面查一下就好了!