使用C#读取Excel文件 - 选择工作表

Dän*_*änu 1 .net c# oledb excel

我正在用C#和OleDB(12.0)读取一个excel文件.在那里,我必须使用我希望阅读的表单的名称指定select语句([Sheet1$]).

this.dataAdapter = 
    new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
Run Code Online (Sandbox Code Playgroud)

是否可以选择第一张纸,无论名称是什么?

谢谢.

Dar*_*rov 5

请参阅此答案,了解如何按顺序获取工作表名称列表:使用Excel OleDb获取工作表名称IN SHEET ORDER

这是我的版本更短一些:

public static IEnumerable<string> GetExcelSheetNames(string excelFile)
{
    var connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
          "Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";
    using (var connection = new OleDbConnection(connectionString))
    {
        connection.Open();
        using (var dt = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null))
        {
            return (dt ?? new DataTable())
                .Rows
                .Cast<DataRow>()
                .Select(row => row["TABLE_NAME"].ToString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)