繁体   English   中英

如何使用C#使用OLEDB访问Excel标头

[英]How to access excel headers using OLEDB using C#

我正在为许多不同的测试用例创建一个测试用例,并且每个测试用例都有其ID,并且我试图从excel中读取测试数据...

这是我的excel工作表的布局,不确定是否还能提出正确的设计

测试用例

这是我正在阅读的代码:

string connectionString = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
    string testCaseName = "case_1";
    string query = "SELECT * from [Sheet1$] WHERE test_case_id =\"" + testCaseName + "\"";
    DataTable dt = new DataTable();

    using (OleDbConnection conn = new OleDbConnection(connectionString))
    {
        conn.Open();

        using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, conn))
        {
            DataSet ds = new DataSet();
            dataAdapter.Fill(ds);
            dt = ds.Tables[0];
        }

        conn.Close();
    }

问题:

test_case_id == 001_test工作正常,没有任何问题

但如果通过test_case_id = 0059_test然后我得到了相同的数据test_case_id这是0059_test但我'没有得到正确的标题头名,我得到的头test_case_id 001_test

我的问题:如何获取特定test_case_id (intro_text,api_text ...._的标头)?

默认情况下,第一行被用作标题行。 您需要在查询中指定标题行。

例如 :对于test_case_id 0059_test标头行号为3,则必须按如下方式编写查询:

string query = "SELECT * from [Sheet1$A3:C] WHERE test_case_id = \"" + testCaseName + "\"";

其中A3是第一列标题,C是最后一个数据列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM