如何 SELECT [header 文本 w.点] AS xxx 来自 Excel table?

How to SELECT [header text w. dot] AS xxx FROM an Excel table?

摘要: 使用 Jet.OLEDB 提供程序和 SQL 查询,我不知道如何访问 header 文本列其中包含一个点。有什么方法可以转义 SELECT 查询中的点吗?

详情:我使用的是连接字符串

Provider=Microsoft.Jet.OLEDB.4.0;Data source=test.xls;Extended Properties="Excel 8.0;HDR=Yes;"

当 Excel sheet 列的 header 文本包含一个点(注意点列名为 Abbrev.Packing )...

...然后 SELECT 这样的查询...

SELECT
  [Date] AS d,
  [Code] AS code, 
  [Abbrev. Packing] AS packing,
  [Price] AS price
FROM [Sheet1$]

... 失败,错误为 80004005。当我从 header 文本和 SELECT 命令中删除点时,一切正常,数据被提取。但是,Excel table 来自第三方,我无法更改 header.

的文本

如何转义SELECT命令中的点,或者有什么办法可以解决?

当我尝试加载您通过 SSIS 包提供的类似电子表格时,SSIS 似乎将句点 (.) 替换为井号 (#)。所以,我猜你需要通过 SSIS 加载它,如果你有那个选项可用的话,否则你可能会尝试像这样直接查询它:

SELECT
  [Date] AS d,
  [Code] AS code, 
  [Abbrev# Packing] AS packing,
  [Price] AS price
FROM [Sheet1$]