如何select AS xxx从Excel表中?

简介:使用Jet.OLEDB提供程序和SQL查询,我不知道如何访问其标题文本包含一个点的列。 有没有办法在SELECT查询中转义点?

详细信息:我正在使用连接string

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

当一个Excel工作表的标题文本中包含一个点(请注意名为Abbrev。Packing的点列)…

带点在文本中的列标题。

…然后像这样的SELECT查询…

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

…失败,错误80004005.当我从标题文本和SELECT命令中删除点时,一切正常,数据被提取。 但是,Excel表来自第三方,我不能更改标题的文本。

我如何逃避SELECT命令中的点 ,或者有什么方法来解决它?

看起来,当我尝试加载类似的电子表格时,SSIS会用数字符号(#)replace句点(。),就像通过SSIS包提供的那样。 所以,我猜你会需要通过SSIS加载它,如果你有这个选项可用,否则你可以试试直接像这样查询:

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

SSIS示例