Spreadsheetgear .find方法

时间:2012-11-13 19:13:48

标签: asp.net excel-2007 spreadsheetgear

工具:asp.net VB,SpreadsheetGear 2010

我需要从外部用户读取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不同。

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

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

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行,这让我对数值产生了影响。

以为如果有人遇到同样的问题我会分享。