Member 14573017 Ответов: 2

Как получить имя столбца excel с помощью C#


как отобразить имя столбца excel в виде сетки с помощью stringQuery.

Что я уже пробовал:

stringQuery = "select top 1 * from [sheet1$]";

При использовании этого запроса имя столбца excel не отображается. Он отображает 1-ю строку данных. Но мне нужно только имя столбца excel.

2 Ответов

Рейтинг:
2

OriginalGriff

Листы Excel не имеют "имен столбцов" - создатель листа часто добавляет строку вверху, которая называет столбцы для просмотра пользователем, но это не является обязательным требованием, и есть много листов, у которых нет одного.

Столбцы Excel имеют ссылки: A, B, C, ... и так далее, причем строки являются последовательными номерами: 1, 2, 3, ...
Нет никаких условий для явного именования столбцов.


Member 14573017

Я имею в виду, что с именем столбца я вставил записи в excel с именем заголовка. Поэтому я хочу прочитать только это название заголовка. У вас есть какие-нибудь идеи, чтобы получить или любой stringQuery?

Рейтинг:
1

Maciej Los

Используйте это, чтобы получить схему таблицы (включая имена столбцов): Метод oledbconnection.Метод GetOleDbSchemaTable(Guid, Object []) (System.Data.OleDb) | Microsoft Docs[^]

static DataTable GetSchemaTable(string connectionString)
{
    using (OleDbConnection connection = new 
               OleDbConnection(connectionString))
    {
        connection.Open();
        DataTable schemaTable = connection.GetOleDbSchemaTable(
            OleDbSchemaGuid.Columns,
            new object[] { null, null, "TABLE_NAME_HERE", null });
        return schemaTable;
    }
}


Member 14573017

что такое "TABLE_NAME_HERE" здесь? Это имя листа?

Maciej Los

Имя таблицы, имена столбцов которой вы хотите захватить.