• 使用win8.1 x64 office2010 php 使用 pdo_odbc 连接excel失败的问题


    public function init($filePath){
            $dbq = iconv('UTF-8',"GBK",BASEPATH.'../'.$filePath);
            $dsn = "odbc:Driver={Microsoft Excel Driver (*.xls)};Dbq=".$dbq.";ReadOnly=0;";
            try {
                $this->pdo = new PDO($dsn, '', '',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
            }catch (Exception $e){
                $err = $e->getMessage ();
                $dbh = "连接excel数据库失败:" . iconv('GBK', "UTF-8", $err );
                exit($dbh);
            }
        }

    在本机上无法使用,折磨了半天,最后修改了注册表后可以了。虽然简单,但还是记录一下

    打开odbc管理器不存在Microsoft Excel Driver (*.xls),只有 Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb),将上面的修改也是可以运行的,但是在其他同事使用的是office2003,上面又是不行的。
    所以修改注册表添加驱动如下
    打开注册表regedit
    打开[HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INI]
    导出项 Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)


    编辑导出的reg文件 Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) 修改为 Microsoft Excel Driver (*.xls)
    然后重新注册
    还要在 下面的 ODBC Drivers 项里面新建字符串值
    Microsoft Excel Driver (*.xls)
    Installed

     

    ok,完成,可以连接exccel了
  • 相关阅读:
    Java多线程系列目录(共43篇)
    Java 集合系列目录(Category)
    Floyd算法(三)之 Java详解
    Floyd算法(二)之 C++详解
    Floyd算法(一)之 C语言详解
    Dijkstra算法(三)之 Java详解
    Dijkstra算法(二)之 C++详解
    Dijkstra算法(一)之 C语言详解
    Prim算法(三)之 Java详解
    Prim算法(二)之 C++详解
  • 原文地址:https://www.cnblogs.com/Task/p/3214399.html
Copyright © 2020-2023  润新知