Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用OleDbDataAdapter从Excel文件中的任何电子表格中进行选择_C#_Excel_Linq_Oledb_Oledbdataadapter - Fatal编程技术网

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

C# 如何使用OleDbDataAdapter从Excel文件中的任何电子表格中进行选择,c#,excel,linq,oledb,oledbdataadapter,C#,Excel,Linq,Oledb,Oledbdataadapter,我正在使用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
从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语句。
您需要在名称的末尾添加特殊字符
$

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

谢谢!工作起来很有魅力!Upvote和accept=)将在OleDbConnection=)中阅读有关架构的信息