快速查找具有指定文本的行

时间:2012-11-02 20:11:14

标签: c# excel

好的,所以我有一个非常大的Excel工作表,我需要找到一个带有指定文本字符串的行。此工作表的大小约为10,000行。我目前正在做这样的事情:

    sheet = workbook.ActiveSheet;

  // FIND the tape id in column: __________
        int cellRow = 0;
        int x = 0;
        for (x = 1; x <= 1000000; x++)
        {
            if (sheet.Cells[43][x].text.Contains(tapeID))
            {
                cellRow = x;
                break;
            }
        }

问题在于这种情况持续了一段时间......因此对我的需求来说太慢了。我试着做了sheet.find()方法,但它返回了一大堆错误的单元格.....有人可以帮我实现sheet.find或告诉我更快的方法吗?

我实现了这样的发现:

        sheet = workbook.ActiveSheet;
           Microsoft.Office.Interop.Excel.Range currentFind = currentFind = sheet.Cells.Find(tapeID, Type.Missing,
    Microsoft.Office.Interop.Excel.XlFindLookIn.xlValues, Microsoft.Office.Interop.Excel.XlLookAt.xlPart, 
    Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows, Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext, false,
    Type.Missing, Type.Missing); 

但是当我看到里面的内容时 string value = currentFind [0] [0] .Text

我得到了错误的单元格.....确实在这里使用零地址?...去调​​查

1 个答案:

答案 0 :(得分:0)

由于这是令人沮丧的,我只是对find函数使用了错误的索引。我对此感到有点惭愧,所以我们会忘记它发生了。

干杯