获取Excel范围,包括所有形状对象

时间:2012-10-16 04:51:50

标签: c# excel vsto

在VSTO(C#)项目中,我想使用UsedRange包括图片和图表等形状对象。

1。有没有办法让UsedRange获得形状对象?

由于我找不到这样的方法,我想到了用这个来计算边缘:

foreach (Excel.Shape shape in shapeObjects)
{
     float shapeBottom = shape.Top + shape.Height;
     float shapeRight = shape.Left + shape.Width;
     if (maxBottom < shapeBottom)
     {
         maxBottom = shapeBottom;
     }
     if (maxRight < shapeRight)
     {
         maxRight = shapeRight;
     }
 }

 Excel.Range r = <XXX>(maxBottom, maxRight);

所以现在我遇到了从maxBottom和maxRight获取Range的问题。

2。有没有办法通过给出宽度和高度来获得Range对象?

1 个答案:

答案 0 :(得分:1)

Shapes具有BottomRightCell属性,该属性返回形状右下角所覆盖的单元格。 如果为每个形状迭代该属性,您应该能够收集所需范围的最右列和最后一行。