如何使用c#在excel工作簿中执行盲搜索

时间:2018-02-18 09:45:55

标签: c# excel .net-3.5

我正在将excel文件导入datagridview然后我想在这些数据中执行盲搜索,这些数据可能是从一个或多个文件导入的

现在我正在使用下面的方法过滤数据,我在Texrbox_TextChanged事件

上调用它
public void DataFilter()
{
    BindingSource bs = new BindingSource();
    bs.DataSource = DGV_Data.DataSource;


    bs.Filter = string.Format(@"convert(National_ID,'System.String') LIKE '%{0}%' 
                                    AND First_Name LIKE '%{1}%' 
                                    AND Father_Name LIKE '%{2}%' 
                                    AND Last_Name LIKE '%{3}%' 
                                    AND Mother_Full_Name LIKE '%{4}%' 
                                   AND Nationality LIKE '%{5}%'",
                                    TB_National_ID.Text,
                                    TB_First_Name.Text,
                                    TB_Father_Name.Text,
                                    TB_Last_Name.Text,
                                    TB_Mother_Full_Name.Text,
                                    TB_Nationality.Text);

    DGV_Data.DataSource = bs;
    Re-calculate record counts

L_Rows_Count.Text = "Count: " + (DGV_Data.Rows.Count - 1).ToString("n0");
}

但是会根据列过滤数据,所以我尝试将其转换为盲目搜索,如下所示

public void DataFilter()
{
    ExcelRange.get_Range("A1", "XFD1");

    Range findRng = 
    ExcelRange.Find("hello sa", 
                    Type.Missing,
                    Excel.XlFindLookIn.xlFormulas, 
                    Excel.XlLookAt.xlPart, 
                    Excel.XlSearchOrder.xlByRows,
                    Excel.XlSearchDirection.xlNext, 
                    false, 
                    false, 
                    false);

    DGV_Data.DataSource = bs;
    Re-calculate record counts

L_Rows_Count.Text = "Count: " + (DGV_Data.Rows.Count - 1).ToString("n0");
}

我收到的错误是

  

对象引用未设置为对象的实例。

也不会回复datagridview所有可能与文本匹配的记录......我将失去LIKE功能

并且我没有使用范围因为我的代码无法修复

还有任何建议或更好的想法吗?

更新

我不知道是否可以以某种方式使用where子句的示例查询

cmdtxt = @"select * from [" + ExcelWorkSheets.Name + "$] where somehow ";

0 个答案:

没有答案