使用 C# 和 OleDbConnection 从特定工作表的 Excel 文件中获取列名称

2024-04-13

到目前为止,我已经设法获取整个Excel文件的列名,但我想做的是获取给定表(工作表)的Excel文件的列名。我该如何修改代码来实现这一目标。我已经尝试了一段时间,但没有取得积极的结果,非常感谢任何帮助。

public static List<String> ReadSpecificTableColumns(string filePath, string sheetName)
    {
        var columnList = new List<string>();
        try
        {
            var excelConnection = new OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;Data Source='" + filePath + "';Extended Properties='Excel 12.0;IMEX=1'");
            excelConnection.Open();
            var columns = excelConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, null);
            excelConnection.Close();

            if (columns != null)
            {
                columnList.AddRange(from DataRow column in columns.Rows select column["Column_name"].ToString());
            }

        }
        catch (Exception exception)
        {
            Console.WriteLine(exception.Message);
        }

        return columnList;
    }

您没有在代码中包含工作表名称。
您可以尝试下面的代码:

var adapter = new OleDbDataAdapter("SELECT * FROM [" +sheetName + "$]", excelConnection);
var ds = new DataSet();
adapter.Fill(ds, "myTable");
DataTable data = ds.Tables["myTable"];

foreach(DataColumn  dc in data.Columns){
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 C# 和 OleDbConnection 从特定工作表的 Excel 文件中获取列名称 的相关文章

随机推荐