代码之家  ›  专栏  ›  技术社区  ›  Dänu

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

  •  1
  • Dänu  · 技术社区  · 15 年前

    我正在用C和OLEDB(12.0)读取Excel文件。在这里,我必须用我想读的工作表的名称指定select语句( [Sheet1$] )

    this.dataAdapter = 
        new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
    

    是否可以选择第一张纸,无论其名称如何?

    谢谢您。

    1 回复  |  直到 12 年前
        1
  •  5
  •   Community Mohan Dere    8 年前

    有关如何按顺序获取工作表名称列表,请参见此答案: Using Excel OleDb to get sheet names 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());
            }
        }
    }