c# excel查询a列和b列是否有我要的内容

如题所述

通常可以用以下2种处理方法:

    使用 ADO 查询

    适用条件:excel 文档是标准的数据表文件,即表格第一列是标题(也可以叫 字段名),当然你也肯定知道a列和b列的标题

    添加以下代码:

    using System.Data;
    using System.Data.OleDb;

    public static DataSet LoadDataFromExcel(string DataFileName, string SqlText)
            {
                try
                {
                    string strConn = "Provider=microsoft.ace.oledb.12.0;Extended Properties=Excel 8.0;Data Source=" + DataFileName;
                    OleDbConnection Conn = new OleDbConnection(strConn);
                    OleDbCommand Cmd = new OleDbCommand(SqlText, Conn);
                    OleDbDataAdapter oda = new OleDbDataAdapter();
                    oda.SelectCommand = Cmd;
                    DataSet ds = new DataSet();
                    oda.Fill(ds);
                    return ds;
                }
                catch
                {
                    return null;
                }
            }

    调用的时候可以构造查询字符串string SqlText = "select * from [$此处是sheet名] where a列名或b列名 like %你要查找的值%"
    ,检查返回值是否为null,可判定是否存在要查询的值

    使用托管的Office对象模型,像使用Excel那样使用

    适用范围:任何范围

    需先添加 Microsoft Excel **.0 Object Library 引用,然后添加

    using Excel = Microsoft.Office.Interop.Excel;

    此时可以在代码里使用

    Excel.Application eapp= new Excel.Application();

    声明一个Excel程序,就可以像在Excel里一样操作你的Excel文件了

    Excel.Workbook wb = eapp.Open(你的文件名);




追问

OleDbCommand Cmd = new OleDbCommand("select * from [$账号] where 姓名 like 小蔡", Conn);dataGridView1.DataSource = ds.Tables[0];//执行之后dataGridView是空的。我想将其所在行显示出来,如在第3行检测到的,那么就把第三行指定的列(知道列名)显示出来

追答

呃,不好意思,昨天打的时候把 $位置放错了,你的语句应该是 

OleDbCommand Cmd = new OleDbCommand("select * from [账号$] where 姓名 like '%小蔡%'", Conn);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-26
VLOOKUP函数,你值得拥有!追问

如果我单单只是Excel确实是值得拥有啦!不过我要的是c#代码哦

如果我单单只是Excel确实是值得拥有啦!不过我要的是c#代码哦

追答

这个。。。。。无能为力了。坐等VBA高手出来吧。

相似回答