ADO – 如何从xls文件中select两列或多列具有相同名称的列?

我有这样一个excel文件:

| | A | B | C | D | | 1 | Name 1 | Name 2 | Name 3 | Name 2 | | 2 | Data | Data | Data | Data | | 3 | Data | Data | Data | Data | 

如您所见,两列的标题具有相同的名称 – 名称2

我的问题是,有可能告诉ADO引擎从哪个列select数据?

目前我的select是这样的:

 SELECT [Name 1], [Name 2] FROM [REPORT7_RAW$] WHERE [Name 1] IS NOT NULL 

ADO从excel中的B列中列出的数据中提取数据。 换句话说,它需要具有给定名称的第一列。 不幸的是,我有两个同名的列,我想从列D提取数据。 可能吗?

我无法find任何方式来select列索引而不是名称。

您将需要更改您的连接string,以便不使用数据标题名称。 正常的连接string看起来像这样:

 Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx; Extended Properties="Excel 12.0 Xml;HDR=YES"; 

您需要将最后一位HDR=YES更改为HDR=NO

通过这种连接,列(字段)变成F1F2等,其中F1 =列A, F2 =列B等

这是不理想的,因为你现在基本上是根据列的数量来运行查询,而不是根据名称,而是使用重复的列名,这是唯一的方法。