C# · 12月 26, 2021

c# – 如何使用OleDbDataAdapter从Excel文件中的任何电子表格中进行SELECT

我使用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 [%]”

解决方法 您需要知道表单的名称才能在其上应用select语句.
并且您需要在名称的末尾添加特殊的char $.

假设你有一个名为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文件中的第一个工作表的名称(其他工作表在第一个连续的行之后可用)