0

工具: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 不同。

感谢您提供的任何帮助。

4

1 回答 1

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 行,这给了我我的值的范围。

以为我会分享以防万一有人遇到同样的问题。

于 2012-11-15T01:41:08.027 回答