好的,所以我有一个非常大的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
我得到了错误的单元格.....确实在这里使用零地址?...去调查
答案 0 :(得分:0)
由于这是令人沮丧的,我只是对find函数使用了错误的索引。我对此感到有点惭愧,所以我们会忘记它发生了。
干杯