zoukankan      html  css  js  c++  java
  • Excel的 OleDb 连接串的格式

    Excel的 OleDb 连接串的格式(Provider=Microsoft.ACE.OLEDB)(2012-08-02 13:04:20)

    string strCon = "Provider=Microsoft.ACE.OLEDB.12.0;data source=" + filePath + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1'"; //Excel 2007文件

    Provider=Microsoft.Jet.OleDb.4.0;data source=" + filePath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"; //Excel 2003文件

    Jet 引擎,可以访问Office97-2003,但不能访问 Office 2007。

    ACE 引擎,是随Office2007一起发布的数据库连接组件,既可以访问 Office 2007,也可以访问Office97-2003。

    另外:Microsoft.ACE.OLEDB.12.0 可以访问正在打开的 Excel 文件,而 Microsoft.Jet.OLEDB.4.0 是不可以的。

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

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

    IMEX 表示混合数据类型时如何处理。

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

    Excel 第一行第一列可以存储字符串,第二行第一列又可以存储数字……同样的列,存储不同的数据类型,这就形成了混合数据类型。

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

    ps:IMEX=1只确保在某列前8行数据至少有一个是文本项的时候才起作用,它只是把查找前8行数据中数据类型占优选择的行为作了略微的改变。例如某列前8行数据全为纯数字,那么它仍然以数字类型作为该列的数据类型,随后行里的含有文本的数据仍然变空。

    多一分冷靜,少一分浮躁
  • 相关阅读:
    个人总结11
    进度条4,5
    对vivo自带输入法的评价
    个人总结10
    hdu5589Tree
    HDU5213 Lucky
    2018icpcShenYangE
    bzoj3683: Falsita
    cf396C. On Changing Tree
    cf600E. Lomsat gelral
  • 原文地址:https://www.cnblogs.com/AnnyGird-LiMing/p/4988568.html
Copyright © 2011-2022 走看看