我有一个问题。
使用c#可以使用id.i读取值并在循环中使用if (id == excelSheet1.Cells[j, 1].Value)
搜索值来查找值。
它会检查所有记录,如果找到匹配项,则返回值并退出循环。
int id=101;
是否可以像excel.contains(id)
这样更快的方法来寻找价值?
我的代码使用线性搜索方法,很费时间。
请帮助我。
答案 0 :(得分:0)
如果要将数据存储在DataTable中,则可以使用Select()方法并通过查询查找所有行(例如DataRow[] matches dt.Select("ID = " + id);
)。
根据我的经验,它的运行速度非常快,但是我从未在非常大的表上进行过检查(我通常在包含10,000-15,000条记录的表上进行过检查)。
答案 1 :(得分:0)
回答我的问题。谢谢您。
string id = "OZHAN1";
Microsoft.Office.Interop.Excel.Range resultRange = excelRange.Find(
What: id,
LookIn: Microsoft.Office.Interop.Excel.XlFindLookIn.xlValues,
LookAt: Microsoft.Office.Interop.Excel.XlLookAt.xlPart,
SearchOrder: Microsoft.Office.Interop.Excel.XlSearchOrder.xlByRows,
SearchDirection: Microsoft.Office.Interop.Excel.XlSearchDirection.xlNext
);
string sAddress = resultRange.get_Address(false, false, Microsoft.Office.Interop.Excel.XlReferenceStyle.xlA1, false, false);
string b= excelSheet.Cells[resultRange.Row, 5].VALUE;