如何使用OleDbDataAdapter从Excel文件中的任何电子表格中进行选择

Bry*_*yuk 9 c# linq oledb excel oledbdataadapter

我正在使用从excel文件中OleDbDataAdapter提取DataSet,但我的SELECT语句里面有问题

DataSet excelDataSet = new DataSet();
using (OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString))
{
     con.Open();
     OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter("select * from [Name of spreadsheet]", con);
     cmd.Fill(excelDataSet);
     con.Close();
}
Run Code Online (Sandbox Code Playgroud)

如果您看到我有"select * from [Name of spreadsheet]",但我需要获取任何电子表格,例如第一个电子表格,但此电子表格的名称可以是任何内容.

怎么指定呢?是否有任何特殊字符"select * from [%]"

Ste*_*eve 16

您需要知道要在其上应用select语句的工作表名称.
您需要$在名称末尾添加特殊字符.

假设您有一个名为的工作表,MyFirstSheet那么您可以从中选择行

 OleDbDataAdapter cmd = new OleDbDataAdapter("select * from [MyFirstSheet$]", con);
Run Code Online (Sandbox Code Playgroud)

如果你不知道你可以打电话的床单名称

using (OleDbConnection con = new OleDbConnection(connectionString))
{
    con.Open();
    DataTable dt = con.GetSchema("Tables");
    string firstSheet = dt.Rows[0]["TABLE_NAME"].ToString();
    ...... work with the first sheet .....
}
Run Code Online (Sandbox Code Playgroud)

此示例应该为您提供excel文件中第一个工作表的名称(其他工作表在第一个工作表之后的连续行中可用)