将指定范围区域拷贝到目标区域

/// <summary>
  /// 将指定范围区域拷贝到目标区域
  /// </summary>
  /// <param name="sheetIndex">WorkSheet索引</param>
  /// <param name="startCell">要拷贝区域的开始Cell位置(比如:A10)</param>
  /// <param name="endCell">要拷贝区域的结束Cell位置(比如:F20)</param>
  /// <param name="targetCell">目标区域的开始Cell位置(比如:H10)</param>
  public void RangeCopy(int sheetIndex,string startCell,string endCell,string targetCell)
  {
   if(sheetIndex > this.WorkSheetCount)
   {
    this.KillExcelProcess();
    throw new Exception("索引超出范围,WorkSheet索引不能大于WorkSheet数量!");
   }

   try
   {
    workSheet = (Excel.Worksheet)workBook.Worksheets.get_Item(sheetIndex);
    range1 = workSheet.get_Range(startCell,endCell);
    range2 = workSheet.get_Range(targetCell,this.missing);

    range1.Copy(range2);
   }
   catch(Exception e)
   {
    this.KillExcelProcess();
    throw e;
   }
  }

  /// <summary>
  /// 将指定范围区域拷贝到目标区域
  /// </summary>
  /// <param name="sheetName">WorkSheet名称</param>
  /// <param name="startCell">要拷贝区域的开始Cell位置(比如:A10)</param>
  /// <param name="endCell">要拷贝区域的结束Cell位置(比如:F20)</param>
  /// <param name="targetCell">目标区域的开始Cell位置(比如:H10)</param>
  public void RangeCopy(string sheetName,string startCell,string endCell,string targetCell)
  {
   try
   {
    Excel.Worksheet sheet = null;

    for(int i=1;i<=this.WorkSheetCount;i++)
    {
     workSheet = (Excel.Worksheet)workBook.Sheets.get_Item(i);
     
     if(workSheet.Name == sheetName)
     {
      sheet = workSheet;
     }
    }

    if(sheet != null)
    {
     for(int i=sheetCount;i>=1;i--)
     {
      range1 = sheet.get_Range(startCell,endCell);
      range2 = sheet.get_Range(targetCell,this.missing);

      range1.Copy(range2);
     }
    }
    else
    {
     this.KillExcelProcess();
     throw new Exception("名称为\"" + sheetName + "\"的工作表不存在");
    }
   }
   catch(Exception e)
   {
    this.KillExcelProcess();
    throw e;
   }
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值