office97 office2000 office2003 office2007 office2010这四种版本 恐怕是经典版本了, 而数据连接组件是否也相应改进了吗?无从知晓,不过在用的过程中确实有点遗憾. Microsoft.jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName 中Microsoft.jet.OLEDB.4.0 数据引擎 从2007版本中进步了,可以用Microsoft.ace.OLEDB.12.0了,在用于自身连接中,解决了某列数据中前8行如果为空的话,那么不能提取这列8行以后的数据,ADO 必须猜测 Excel 工作表或范围中各列的数据类型。(这不受 Excel 单元格格式设置的影响。)如果同一列中既有数字值,也有文本值,会出现严重的问题。Jet 提供程序将返回占多数的类型的数据,但对于占少数的数据类型,则会返回 NULL(空)值。如果该列中两种类型数据的数量相等,提供程序将优先选择数字型数据,放弃文本型数据。
例如: · 在被扫描的八 (8) 行中,如果该列包含五 (5) 个数字值和三 (3) 个文本值,则提供程序将返回五 (5) 个数字和三 (3) 个空值。 · 在被扫描的八 (8) 行中,如果该列包含三 (3) 个数字值和五 (5) 个文本值,则提供程序将返回三 (3) 个空值和五 (5) 个文本值。 · 在被扫描的八 (8) 行中,如果该列包含四 (4) 个数字值和四 (4) 个文本值,则提供程序将返回四 (4) 个数字和四 (4) 个空值。 如果采用ACE引擎,前8行为空,会把这列8行以下所有的数据强制定为文本类型输出,而JET则把这列全部返回为 NULL,不管有没有数据 但还有一个问题: 不管采用JET40 还是ACE12.0 对EXCEL工作表总行数的最大行65536,却没有解决, EXCEL:2003最大支持行数是65536, EXCEL2007最大支持行数是1048576,当数据超过了65536行 用ADO取数时,大家看看会怎样? 这可能ADO版本是过时了的吧, ADO版本还是2.5,没有突破 65536. |