![](/img/trans.png)
[英]In C# how to access excel headers using OLEDB (without Automation)?
[英]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.