C# C读取头不是第一行的excel文件
我正在尝试从excel文件中读取数据。完整代码如下。前几行是垃圾,因此请使用以下命令跳过它们C# C读取头不是第一行的excel文件,c#,C#,我正在尝试从excel文件中读取数据。完整代码如下。前几行是垃圾,因此请使用以下命令跳过它们 "SELECT * From [" + SheetName + "] WHERE [F3] <> ''"; 我希望将代码读入datatable,并且仍然保留标题。出现在垃圾行之后 问题是,当我使用上面的WHERE子句过滤垃圾行时,datatable列标题显示为F1、F2等 在我的连接字符串中,我确实指定了我想要的头 HDR=是 如果我从SELECT中删除WHERE子句,它将按预期工作 请告
"SELECT * From [" + SheetName + "] WHERE [F3] <> ''";
我希望将代码读入datatable,并且仍然保留标题。出现在垃圾行之后
问题是,当我使用上面的WHERE子句过滤垃圾行时,datatable列标题显示为F1、F2等
在我的连接字符串中,我确实指定了我想要的头
HDR=是
如果我从SELECT中删除WHERE子句,它将按预期工作
请告知
switch (Extension)
{
case ".xls": //Excel 97-03
conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
break;
case ".xlsx": //Excel 07
conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
break;
}
conStr = String.Format(conStr, FilePath, "Yes");
OleDbConnection connExcel = new OleDbConnection(conStr);
OleDbCommand cmdExcel = new OleDbCommand();
OleDbDataAdapter oda = new OleDbDataAdapter();
DataTable dt = new DataTable();
cmdExcel.Connection = connExcel;
//Get the name of First Sheet
connExcel.Open();
DataTable dtExcelSchema;
dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
string SheetName = ListSheets.SelectedValue;
connExcel.Close();
//Read Data from First Sheet
connExcel.Open();
cmdExcel.CommandText = "SELECT * From [" + SheetName + "] WHERE [F3] <> ''";
oda.SelectCommand = cmdExcel;
oda.Fill(dt);
connExcel.Close();
假设您的Excel工作表中有固定行的垃圾代码,您可以这样执行查询
"SELECT * From [Sheet1$A5:C]"
这里的假设是,标题位于第5行,C是数据结束的列。这将正确加载列的标题名称
添加用于执行上述查询的Excel的快照
假设您的Excel工作表中有固定行的垃圾代码,您可以这样执行查询
"SELECT * From [Sheet1$A5:C]"
这里的假设是,标题位于第5行,C是数据结束的列。这将正确加载列的标题名称
添加用于执行上述查询的Excel的快照
因为这样,excel中的标题就不会被放入数据表中,因为标题是表中固定的垃圾行数?我已经更新了答案。请检查一下这是否适合你。我已经在本地运行了它,它似乎满足了您的要求。这似乎得到了标题,但不是数据。它也得到了数据。您得到的行数是多少?因为这样excel中的标题不会被放入数据表中,因为标题是您的工作表中固定的垃圾行数?我已更新了答案。请检查一下这是否适合你。我已经在本地运行了它,它似乎满足了您的要求。这似乎得到了标题,但不是数据。它也得到了数据。你的行数是多少?