我非常关注此MSDN页面上的示例:
http://code.msdn.microsoft.com/Imoprt-Data-from-Excel-to-705ecfcd
有1个例外。而不是像
这样的简单查询"Select * FROM [Sheet1$]"
我想做一些更复杂的事情,如:
"Select *, SUBSTRING(COLUMN_A, 1, 5) as STRIPPED_COL_A FROM [Sheet1$]"
但是我收到一条无用的异常消息“IErrorInfo.GetDescription因E_FAIL(0x80004005)而失败。”
如果我不得不猜测,问题是由于在Excel或OleDB中使用了不支持的SUBSTRING函数。那么如何解决这个问题。
答案 0 :(得分:7)
在他们的示例中,您使用Microsoft.ACE.OLEDB驱动程序通过Provider=Microsoft.ACE.OLEDB.12.0
或Provider=Microsoft.Jet.OLEDB.4.0
加载Excel工作表,因此您将不得不使用MS Access中可用的查询格式和功能
Select *, MID(Column_A, <<start>>, <<length>>) as STRIPPED_COL_A from [Sheet1$]
请记住其他特性,例如<<start>>
不是ZERO索引,而是从1开始是字符串中的第一个字符。