0

好的,所以我有一个非常大的 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 查看里面的内容时

我得到了错误的单元格......excel在这里使用零寻址吗?......去调​​查

4

1 回答 1

0

令人沮丧的是,我只是为查找功能使用了错误的索引。我对此感到有点羞愧,所以我们会忘记它发生过。

干杯

于 2012-11-02T20:40:07.057 回答