C # чтение файла Excel, где заголовок не первая строка

1

Я пытаюсь прочитать данные из файла excel. Полный код ниже. Первые несколько строк являются нежелательными, поэтому пропустите их, используя следующие

"SELECT * From [" + SheetName + "] WHERE [F3] <> ''";

Я хочу прочитать код в формате datatable и все еще держать заголовки. которые появляются после мусорных строк.

Проблема в том, что когда я фильтрую наши мусорные строки, используя предложение WHERE выше, заголовки столбцов данных выглядят как F1, F2 и т.д.

В моей строке подключения я указываю, что я хочу, чтобы заголовки

HDR = Yes.

Если я удалю предложение WHERE из SELECT, он работает так, как я ожидаю.

пожалуйста, порекомендуйте

switch (Extension)
            {
                case ".xls": //Excel 97-03
                    conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"].ConnectionString;
                    break;
                case ".xlsx": //Excel 07
                    conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"].ConnectionString;
                    break;
            }
            conStr = String.Format(conStr, FilePath, "Yes");
            OleDbConnection connExcel = new OleDbConnection(conStr);
            OleDbCommand cmdExcel = new OleDbCommand();
            OleDbDataAdapter oda = new OleDbDataAdapter();
            DataTable dt = new DataTable();
            cmdExcel.Connection = connExcel;

            //Get the name of First Sheet
            connExcel.Open();
            DataTable dtExcelSchema;
            dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            string SheetName = ListSheets.SelectedValue;
            connExcel.Close();

            //Read Data from First Sheet
            connExcel.Open();
            cmdExcel.CommandText = "SELECT * From [" + SheetName + "] WHERE [F3] <> ''";
            oda.SelectCommand = cmdExcel;
            oda.Fill(dt);


     connExcel.Close();
Теги:

1 ответ

4
Лучший ответ

Предполагая, что у вас есть фиксированные строки нежелательного кода в листе Excel, вы можете выполнить такой запрос.

"SELECT * From [Sheet1$A5:C]"

Предполагается, что ваши заголовки находятся в строке 5, а C - столбец, где заканчиваются ваши данные. Это правильно загружает имена заголовков для столбцов.

Добавление моментального снимка Excel, с которым работает указанный выше запрос.

Изображение 174551

  • 0
    Потому что таким образом заголовки из Excel не попадают в таблицу данных как заголовки
  • 0
    нет фиксированных строк на вашем листе?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню