1 - загрузить из Excel в таблицу данных (что вы уже сделали), а затем сохранить DataTable в глобальную переменную
2 - При поиске нажмите DataTable.Select : пример или, так как вы используете oledb, вы можете снова выбрать свой Excel с помощью простого запроса вместо Datatable select, вы можете попробовать его, если производительность datatable select низкая. Пример excel search
3- затем Выделите текст в сетке данных, я не использовал формы Windows так долго, но, возможно, http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/43f6b81f-4cb7-4e8e-bd29-e3645f200734/ может быть подсказкой для вас
Хорошо, я использовал ссылки, которые я предоставил, пока все хорошо, за исключением того, что все работает:
Класс Simple Helper для чтения Excel и поиска в DataTable:
public class ExcelHelper
{
public static DataTable LoadXLS(string strFile, String sheetName)
{
DataTable dtXLS = new DataTable(sheetName);
try
{
string strConnectionString = "";
if (strFile.Trim().EndsWith(".xlsx"))
{
strConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", strFile);
}
else if (strFile.Trim().EndsWith(".xls"))
{
strConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\";", strFile);
}
OleDbConnection SQLConn = new OleDbConnection(strConnectionString);
SQLConn.Open();
OleDbDataAdapter SQLAdapter = new OleDbDataAdapter();
string sql = "SELECT * FROM [" + sheetName + "$] "; // "WHERE " + column + " = " + value;
OleDbCommand selectCMD = new OleDbCommand(sql, SQLConn);
SQLAdapter.SelectCommand = selectCMD;
SQLAdapter.Fill(dtXLS);
SQLConn.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
return dtXLS;
}
public static DataTable QueryDataTable(DataTable dt, string column,string value)
{
var drs = dt.Select(String.Format("{0} LIKE '%{1}%'", column, value));
DataTable dt2 = dt.Clone();
foreach (var dataRow in drs)
{
dt2.ImportRow(dataRow);
}
return dt2;
}
}
Надеюсь, это поможет.