zoukankan      html  css  js  c++  java
  • Excel的 OleDb 连接串的格式(Provider=Microsoft.ACE.OLEDB)

    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行数据全为纯数字,那么它仍然以数字类型作为该列的数据类型,随后行里的含有文本的数据仍然变空。

  • 相关阅读:
    scp命令报错-bash: scp: command not found
    shell比较两个字符串是否相等
    bat脚本:自动压缩n天前的文件【转载】
    shell bash判断文件或文件夹是否存在
    linux文件分割(将大的日志文件分割成小的)【转载】
    TCP/IP模型各个层次的功能和协议
    nginx初级安装配置
    Heartbeat+DRBD+MySQL高可用方案【转】
    【转载】CentOS 6.4下PXE+Kickstart无人值守安装操作系统
    oracle的exp和imp命令的使用【转载】
  • 原文地址:https://www.cnblogs.com/wx881208/p/4096728.html
Copyright © 2011-2022 走看看