2012-11-13 50 views
0

工具:asp.net VB,2010的SpreadsheetGear的SpreadsheetGear .find方法

我需要来自外部用户的Excel文件阅读,我不控制的格式。有3个部分的数据。我能够阅读标题。挑战在于身体的细节可以包含无数的行,有时这些行是空白的。我可以确定页脚行,因为有一段文字是唯一的。因此我可以执行以下操作:

Dim dFoot As SpreadsheetGear.IRange = worksheet.Cells("20:21").Rows 

Dim rngDet As SpreadsheetGear.IRange 

rngDet = dFoot.Find(what:="UNIQUE TEXT HERE", 
        lookIn:=SpreadsheetGear.FindLookIn.Values, 
        lookAt:=SpreadsheetGear.LookAt.Whole, 
        searchOrder:=SpreadsheetGear.SearchOrder.ByColumns, 
        searchDirection:=SpreadsheetGear.SearchDirection.Next, 
        matchCase:=False, 
        after:=dFoot) 

不幸的是,我现在卡在这里。我无法确定单元格的位置(即V79),或者如何移动7列和3列以获取插入的第一个值。我尝试了抵消和阅读rngDet的不同方法,但没有运气。我也尝试使用rngDet.Activate()来读取活动单元格,但它与Microsoft不一样。

我很感谢您提供的任何帮助。

+0

我不完全按照你正在尝试做什么。例如,您想要查找与您的3段数据相关的单元格?你想在这一点插入更多的单元格或行吗?移动7列和3列的意义何在?随意阐述你的要求。 –

回答

0

Tim,谢谢你的问题。第一次问,所以我可能不是很清楚。我今天确实找到了答案。我有一组需要上传的单元格。问题在于,它们将在页面上下移动,具体取决于上面部分中输入的行数。我意识到,我知道这是要什么样的列是在,所以我进行以下操作:

Dim x As Integer 
    Dim xFooter As Integer 
    Dim columnnumber As Integer = 21 'Column V 

    txtTest.Text = worksheet.Cells.RowCount 
    For x = 500 To 1 Step -1 

     If worksheet.Cells(x, columnnumber).Value = "TOTAL PRODUCT COST CALCULATION" Then 
      txtTest.Text = x 
      xFooter = x 
      Exit For 
     End If 
    Next x 

我现在可以用我的x值作为我的细胞群的左下角。我知道这些值超过了7列,从20列减少了20列,这给我带来了价值的尴尬。

以为我会分享以防万一任何人都有同样的问题。