9

OleDbDataAdapter用来从excel文件中提取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();
}

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

如何指定?是否有任何特殊字符,例如"select * from [%]"

4

1 回答 1

18

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

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

 OleDbDataAdapter cmd = new OleDbDataAdapter("select * from [MyFirstSheet$]", con);

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

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 .....
}

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

于 2013-12-16T18:45:34.890 回答