Проблема в том, что Excel (или, точнее, драйвер) ожидает, что первая строка исходных данных содержит строку заголовка (содержащую имя столбцов).
Теоретически,является параметром в строке подключения, где вы определяете, есть ли строка заголовка, HDR=YES;
, но кажется, что этот параметр игнорируется для этого драйвера, и вместо этого читается значение из реестра.См. https://stackoverflow.com/a/49555650/7599798
В качестве альтернативы, вы можете использовать драйвер OLE: Попробуйте
strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & filepath _
& ";Extended Properties=""Excel 12.0 Xml;HDR=NO;"""
Это учитывает настройку HDR
, поэтому, если вы напишите HDR=NO
, она будетскопируйте первый ряд, а HDR=YES
пропустит его.Если у вас есть строка заголовка, вы можете получить доступ к столбцам по их имени в SQL
-статменте, в противном случае вам придется обращаться к ним по символам столбца.