OLEDB 连接 Excel 中的 HDR 与 IMEX 解释

作者:vkvi 来源:ITPOW(原创) 日期:2011-2-15

可以利用 Microsoft.Jet.OleDb 连接 Excel,就像数据库一样操作 Excel,以下是一个示例的连接字符串:

HDR

HDR 表示第一行是否是标题行。

  • 若为 YES,则第一行是标题行(即列名称),不是数据;
  • 若为 NO,则第一行不是标题行,跟后面的行一样,是数据。

IMEX

即 intermixed,表示混合数据类型时如何处理。Excel 不像 Access 样,Access 每一字段(列)具有数据类型,Excel 不具有,所以 Excel 第一行第一列可以存储字符串,第二行第一列又可以存储数字……同样的列,存储不同的数据类型,这就形成了混合数据类型。

如果我们的 Excel 不存在混合数据类型,则可以省略 IMEX;如果我们的 Excel 存在混合数据类型,则需要正确指定 IMEX,否则 OLEDB 很可能错误地判断数据类型,导致读取出来的数据是空白,甚至读取不到行等错误。

  • 若为 0,则为输出模式,此情况下只能用作写入 Excel;
  • 若为 1,则为输入模式,此情况下只能用作读取 Excel,并且始终将 Excel 数据作为文本类型读取;
  • 若为 2,则为连接模式,此情况下既可用作写入、也可用作读取。

所以若要读取混合数据类型,应该将 IMEX 设置为 1;若误设置为 0,则读取不到任何行;若误设置为 2 或省略,则有些数据读取出来是空白。

注意:输出模式对应写入、输入模式对应读取。

相关文章