精华内容
下载资源
问答
  • Office 的 COM/OLE 开发目前在 VB 和 C# 方面的支持比较全面,但在 C++ 中支持的非常不好。不仅文档很少,而且没有用于编程的对象模型的源代码。且用新版的 VS 开发环境已经不能提取源代码。本次提供了 Office 2007 ...
  • 我用OLE控件显示 word 或 Excel ,当SourceDoc指定的文件有后缀时,可以正常显示,如果没后缀,即使Class设置为“Word.EXE",也显示不出文档的内容,只显示文件的名称,请问,如何用OLE控件显示没有后缀名的文件?...
  • VC++和OLE开发CAD

    千次阅读 2013-06-20 13:38:00
    用C++开发CAD,一般会选择ObjectARX,很少用OLE方式来开发,正因为很少,所以参考资料也少,帮助也少, 这点我 深有感触。为方便交流,我将近日的一些心得放在这里,还望多多指教!  1. 启动CAD,如果安装了CAD多个...

    用C++开发CAD,一般会选择ObjectARX,很少用OLE方式来开发,正因为很少,所以参考资料也少,帮助也少,

    这点我 深有感触。为方便交流,我将近日的一些心得放在这里,还望多多指教!

      1.    启动CAD,如果安装了CAD多个版本,当我们双击一个后缀是dwg或dxf的文件

        时,默认是用最近一次启动的那个版本来打开文件,用COM启动CAD也一样。为了

         避免这种情况,需要在程序ID上修改。

      IAcadApplication app; 
     LPUNKNOWN pUnk; 
     CLSID clsid;      

     //获取Map3D的类ID
    //"AutoCAD.Application.17"表示启动AutoCAD Map3D 2008
    // "AutoCAD.Application.15"表示启动AutoCAD  2002,
    //而 "AutoCAD.Application.16"则是CAD2005  
     ::CLSIDFromProgID(L"AutoCAD.Application.17",&clsid);    
     
     if(::GetActiveObject(clsid,NULL,&pUnk) == S_OK)//判断ACAD是否已启动
     {        //CAD已经启动,则连接CAD即可
            if (pUnk->QueryInterface(IID_IDispatch,(void**) &pDisp)== S_OK)
           {
                app.AttachDispatch(pDisp,FALSE);                      
                pUnk->Release();
          }
     }
     else 
     {      //CAD没有启动,启动CAD
            app.CreateDispatch(clsid);
      }
        app.SetVisible(TRUE);   /设置为可见
    2 获取文档
     一般来说,启动CAD后即有一个默认的空白文档,如果要获取这个空白文档,就要
     可以直接这样:
         IAcadDocument oDoc=app.GetActiveDocument();
      得到,IAcadApplication::GetActiveDocument()获取活动文档
       打开其他的文件, 调用IAcadDocument的Open函数
       oDoc.Open(_T("D:\\test.dwg"),COlevariant(_T("")));
      要添加新的空白文档就调用:
       IAcadDocuments oDocs=app.GetDocuments();
       COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
       IAcadDocument oDoc=oDocs.Add(covOptional);
      要直接打开其他文档则调用:
       IAcadDocument oDoc=oDocs.Open(COleVariant(strPath),
                COleVaraint((short)0L),COleVariant(_T("")));
    好了,到这里也可以做一小结了,我把部分实例放在这里,其他部分如
    (文档操作、选择集)以后再讲:
     
    BOOL GetFiles(CStringArray &filesArray)
    {
      
     //...
     return TRUE;
    }
    BOOL OperatorCADFiles(IAcadDocument &oDoc)
    {
     if(oDoc.m_lpDispatch==NULL)return FALSE;
     oDoc.SendCommand(_T("zoom e\n"));
     IAcadSelectionSets sets=oDoc.GetSelectionSets();
     IAcadSelectionSet set;
     VARIANT        vGrpVals,vtStr,vtStr2;
        BOOL           bFlag=TRUE;
     try
     {
      COleSafeArray  value,data,type,type2;
      SAFEARRAY      *GrpVals ;
      SAFEARRAYBOUND bnd;
      COleSafeArray  pt,pt2;
      IAcadPolyline  polyLine;
      double  d1[]={0,0,0} ;
      short   typei[]={8,100}; 
      long    i=0,nFictureNum;
      BOOL    bGenerateAsBlock=FALSE;   
      set=sets.Add(_T("test"));
      type.CreateOneDim(VT_I2,2,typei);
      pt.CreateOneDim(VT_R8,3,d1);
       
      bnd.lLbound = 0;
      vtStr.vt = VT_BSTR;
      vtStr.bstrVal = SysAllocString(_T("contour,0")); 
      bnd.cElements= 2;
      GrpVals = SafeArrayCreate(VT_VARIANT,1, &bnd);
      vtStr2.vt = VT_BSTR;
      vtStr2.bstrVal = SysAllocString(_T("AcDbPolyline"));
      i=0;
      SafeArrayPutElement(GrpVals,&i,&vtStr);
      i=1;
      SafeArrayPutElement(GrpVals,&i,&vtStr2 );
      vGrpVals.vt = VT_VARIANT | VT_ARRAY;
      vGrpVals.parray = GrpVals;
      //select AcDbPolyline on layers "contour" or "0" 
      set.Select(5,pt,pt,type,vGrpVals);  
      VariantClear(&vGrpVals);
      nFictureNum=set.GetCount();
      for(i=0;i<nFictureNum;i++)  
     {
       polyLine.AttachDispatch(set.Item(COleVariant(i)));
       polyLine.SetLayer(_T("new_layer"));
      }
       
     }
     catch (CException* e)
     {
      TCHAR szError[256];
      bFlag=FALSE;
      e->GetErrorMessage(szError,255);
      AfxMessageBox(szError);
     }
        set.Delete();
     set.ReleaseDispatch();
     sets.ReleaseDispatch();
     return bFlag;
    }
    void ReadCADFiles()
    {
        IAcadApplication app;
        IAcadDocuments   oDocs; 
        CLSID            clsid;       
        CStringArray     strFilesPath;
     app.m_lpDispatch=NULL;
     ::CLSIDFromProgID(_T("AutoCAD.Application.17"),&clsid);    
     app.CreateDispatch(clsid);
        app.SetVisible(1);
     oDocs = app.GetDocuments();
       
        if(!GetFiles(strFilesPath))   
     {
      AfxMessageBox(_T("Can not find files!"));
      goto ExitFun;
     }
      
     for(int i=0;i<strFilesPath.GetSize();i++) 
     {
         IAcadDocument  oDoc=oDocs.Open(strFilesPath.GetAt(i),COleVariant((short)1),COleVariant(_T("")));
      OperatorCADFiles(oDoc);
      oDoc.Close(COleVariant((short)0),COleVariant(_T("")));
      }
    ExitFun:
          oDocs.Close(); 
          app.Quit();
    }
    
    window.google_render_ad();
    展开全文
  • ActiveX,OLE是基于COM的一种应用,其文件后缀一般以dll和ocx结尾;ocx作为一种特殊的dll文件,具有一定的用户界面和事件响应,而dll文件只是方法和属性的集合。一、关于DLL的介绍 DLL,动态链接库,Dynamic Link ...

    ActiveX,OLE是基于COM的一种应用,其文件后缀一般以dll和ocx结尾;ocx作为一种特殊的dll文件,具有一定的用户界面和事件响应,而dll文件只是方法和属性的集合。

    一、关于DLL的介绍
     
        DLL,动态链接库,Dynamic Link Library的缩写,是一个包含函数和数据的模块集合,可以被其它应用程序共享的程序模块。DLL作为共享函数库的可执行文件,封装了一个或多个已被编译、链接的函数。多个进程可以同时使用一个 DLL,在内存中共享该 DLL 的一个副本。DLL 还有助于共享数据和资源。   它和可执行文件(.EXE文件)非常类似,他们的区别在于 DLL 中虽然包含了可执行代码却不能单独执行,只能由需要使用它的应用程序来直接或间接调。[1]

        通俗的说,在Windows操作系统中,许多应用程序并不是一个完整的可执行文件,它们的正确执行需要调用一些相对独立的动态链接库,即DLL文件。一个应用程序可以调用多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享 DLL 文件。[2]DLL 文件一般被存在C:/Windows/System 目录下,也可能放在应用程序所在的目录或是子目录中。

       提到动态链接,先说明一下静态连接。什么是静态连接呢?在程序链接的过程中,需要将编译后的二进制代码链接成目标代码,链接器从静态链接库中获得所有被引用的函数,并将这些被引用的函数同代码一起放到可执行文件中。那么关于 DLL 的静态连接则是指链接器将被引用的库函数的代码复制到调用 DLL 的可执行模块(.dll 文件或 .exe 文件)中。

      什么是动态链接呢?动态链接是系统允许可执行模块(.dll 文件或 .exe 文件)在运行程中,只需要包含在定位 DLL 函数的可执行代码所需的信息。换句话说,可执行模块(.dll 文件或 .exe 文件)在运行时加载这些模块(亦即所需的模块映射到调用进程的地址空间)。[3]

       那么动态链接和静态连接 相比,优点有哪些呢?

        (1)节省内存,减少交换操作。使用动态链接,多个进程可以同时使用一个 DLL,在内存中共享该 DLL 的一个副本。使用静态链接,每个应用程序都包含被引用的库函数的代码,那么Windows 必须在内存中为每个应用程序加载引用的库函数的代码的一个副本。
        (2)节省磁盘空间。使用动态链接,在磁盘上仅需要 DLL 的一个副本。使用静态链接,每个应用程序都包含被引用的库函数的代码。
        (3)更易于升级。使用动态链接,DLL 中的函数发生变化时,只要函数的参数和返回值没有更改,就不需重新编译或重新链接使用它们的应用程序。使用静态链接,在函数发生变化时,需要重新链接来生成应用程序。
        (4)支持多语言程序,只要程序遵循函数的调用约定,用不同编程语言编写的程序就可以调用相同的DLL 函数。
        (5)提供扩展 MFC 库类的机制。可以从现有 MFC 类派生类,并将它们放到 MFC 扩展 DLL 中供 MFC应用程序使用。
        (6)支持多语言程序,并使国际版本的创建轻松完成。通过将资源放到 DLL 中,创建应用程序的国际版本变得容易得多。可将用于应用程序的每个语言版本的字符串放到单独的 DLL 资源文件中,并使不同的语言版本加载合适的资源。[4]

      DLL 中包含下面两类函数的定义:
      导出函数:这些函数由可执行模块(.dll 文件或 .exe 文件)调用。
      内部函数:这些函数仅从定义它们的 DLL 中调用。DLL 还导出数据。不过,这些数据由相应的函数使用。

       可以通过下列方式调用 DLL 中的函数: 
        加载时动态链接:可执行模块执行显式调用以导出 DLL 函数。为 DLL 创建导入库,然后将 DLL 链接到应用程序。在加载应用程序时,导入库提供加载 DLL 和查找导出的 DLL 函数所需的信息。
        运行时动态链接:在运行时加载 DLL 时,可执行模块使用 LoadLibrary 函数或 LoadLibraryEx 函数。可执行模块调用 GetProcAddress 函数以获取导出的 DLL 函数的地址。在链接时,Windows 搜索预安装的一组 DLL,例如性能库 (Kernel32.dll) 和安全库 (User32.dll)。然后,Windows 按以下顺序搜索DLL:
    1.当前进程的可执行程序所在的目录。
    2.当前目录。
    3.Windows 系统目录。(GetSystemDirectory 函数获取 Windows 系统目录的路径。)
    4.Windows 目录。(GetWindowsDirectory 函数获取 Windows 目录的路径。)
    5.PATH 环境变量中列出的目录。注意:LIBPATH 环境变量不用于搜索。[3]

        DLL 有一个特殊的入口点(DllMain 函数),它在附加和分离进程和线程时运行。此行为允许根据需要创建和销毁数据结构。文件扩展名为 .ocx、.cpl 和 .drv 的文件类型也是 DLL,尽管文件扩展名已改变。
        您可以通过创建 DLL 实现以下目的:
        (1)将程序划分为可按需加载的单独模块。
        (2)存储特定于语言或特定于区域的资源。
        (3)使您自己的应用程序能够使用核心代码库。
        (4)生成进程内 COM 对象或 ActiveX 控件 (OCX)。
        (5)将 OLE 对象用作进程内 DLL。这一用法可改进 OLE 链接的性能。
        (6)使用控制面板扩展或使用某些类型的驱动程序。 [3]

    二、关于以.ocx为后缀名的ActiveX控件

        刚才提到过,文件扩展名为 .ocx、.cpl 和 .drv 的文件类型也是 DLL。

        现在的ActiveX 控件等价与以前的OLE控件或OCX,一个典型的控件包括设计时和运行时的用户界面,唯一的IDispatch接口定义了控件的属性和方法,唯一的 IConnectionPoint接口定义控件可引发的事件。一个控件可以在容器中运行,所以从运行的角度看它类似与一个DLL。[5]

        尽管 ActiveX 和 OLE 都基于组建对象模型(Component Object Model,COM),它们为程序员提供的却是截然不同的服务。COM提供的是低级的对象捆绑机制,该机制支持对象之间的交互通讯。OLE使用COM来提供低级的应用服务,例如采用连接和嵌入机制,支持用户创建复合文档。与之不同,ActiveX提供更精细的结构,用以支持在网络站点上嵌入控件,以及对事件的交互反应。优化ActiveX,目的是为了提高时间和空间效率,而优化OLE,是为了便于终端用户的使用和集成台式系统的应用程序。ActiveX还为Internet技术带来了一些技术上的变革,例如,ActiveX大大减小了代码量(代码量减少了百分之五十到七十),支持更多的提交和异步连接。 [6]

       ActiveX的基础是OLE和COM,但是通过MS的各种开发工具可以屏蔽掉COM模型中许多另人费解的技术细节。ActiveX组件技术包括以下一些方面:(1)自动化服务器 (2)自动化控制器 (3)控件 (4)COM对象 (5)文档 (6)容器 。

       以.ocx为后缀名的ActiveX控件主要应用在WEB上和Window Forms程序开发上。应用程序使用ActiveX/COM组件来扩展自身的业务逻辑、事务处理和应用服务的范围。

       顺便提一下以.ocx为后缀名的ActiveX控件的注册和卸载方法,在“开始”菜单的“运行”输入以下代码完成任务:
        regsvr32 path & "/xxx.ocx" '注册
        regsvr32 /u path & "/xxx.ocx" '卸载

        其中path代表该xxx.ocx所以在的目录的路径。

    三、OCX和DLL的区别

       以.ocx为后缀名的ActiveX控件是一种比较特殊的DLL,它的基础是OLE和COM,是有交互界面的可视化控件,定义了控件的属性和方法,定义控件可引发的事件的响应。我们通常说的.DLL为后缀名的文件是一个包含函数和数据的模块集合,可以被其它应用程序共享的程序模块。


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cesium/archive/2007/03/22/1537719.aspx

    展开全文
  • ocx dll activex com ole介绍

    千次阅读 2007-03-22 16:35:00
    ActiveX,OLE是基于COM的一种应用,其文件后缀一般以dll和ocx结尾;ocx作为一种特殊的dll文件,具有一定的用户界面和事件响应,而dll文件只是方法和属性的集合。一、关于DLL的介绍 DLL,动态链接库,Dynamic Link ...

    ActiveX,OLE是基于COM的一种应用,其文件后缀一般以dll和ocx结尾;ocx作为一种特殊的dll文件,具有一定的用户界面和事件响应,而dll文件只是方法和属性的集合。

    一、关于DLL的介绍
     
        DLL,动态链接库,Dynamic Link Library的缩写,是一个包含函数和数据的模块集合,可以被其它应用程序共享的程序模块。DLL作为共享函数库的可执行文件,封装了一个或多个已被编译、链接的函数。多个进程可以同时使用一个 DLL,在内存中共享该 DLL 的一个副本。DLL 还有助于共享数据和资源。   它和可执行文件(.EXE文件)非常类似,他们的区别在于 DLL 中虽然包含了可执行代码却不能单独执行,只能由需要使用它的应用程序来直接或间接调。[1]

        通俗的说,在Windows操作系统中,许多应用程序并不是一个完整的可执行文件,它们的正确执行需要调用一些相对独立的动态链接库,即DLL文件。一个应用程序可以调用多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享 DLL 文件。[2]DLL 文件一般被存在C:/Windows/System 目录下,也可能放在应用程序所在的目录或是子目录中。

       提到动态链接,先说明一下静态连接。什么是静态连接呢?在程序链接的过程中,需要将编译后的二进制代码链接成目标代码,链接器从静态链接库中获得所有被引用的函数,并将这些被引用的函数同代码一起放到可执行文件中。那么关于 DLL 的静态连接则是指链接器将被引用的库函数的代码复制到调用 DLL 的可执行模块(.dll 文件或 .exe 文件)中。

      什么是动态链接呢?动态链接是系统允许可执行模块(.dll 文件或 .exe 文件)在运行程中,只需要包含在定位 DLL 函数的可执行代码所需的信息。换句话说,可执行模块(.dll 文件或 .exe 文件)在运行时加载这些模块(亦即所需的模块映射到调用进程的地址空间)。[3]

       那么动态链接和静态连接 相比,优点有哪些呢?

        (1)节省内存,减少交换操作。使用动态链接,多个进程可以同时使用一个 DLL,在内存中共享该 DLL 的一个副本。使用静态链接,每个应用程序都包含被引用的库函数的代码,那么Windows 必须在内存中为每个应用程序加载引用的库函数的代码的一个副本。
        (2)节省磁盘空间。使用动态链接,在磁盘上仅需要 DLL 的一个副本。使用静态链接,每个应用程序都包含被引用的库函数的代码。
        (3)更易于升级。使用动态链接,DLL 中的函数发生变化时,只要函数的参数和返回值没有更改,就不需重新编译或重新链接使用它们的应用程序。使用静态链接,在函数发生变化时,需要重新链接来生成应用程序。
        (4)支持多语言程序,只要程序遵循函数的调用约定,用不同编程语言编写的程序就可以调用相同的DLL 函数。
        (5)提供扩展 MFC 库类的机制。可以从现有 MFC 类派生类,并将它们放到 MFC 扩展 DLL 中供 MFC应用程序使用。
        (6)支持多语言程序,并使国际版本的创建轻松完成。通过将资源放到 DLL 中,创建应用程序的国际版本变得容易得多。可将用于应用程序的每个语言版本的字符串放到单独的 DLL 资源文件中,并使不同的语言版本加载合适的资源。[4]

      DLL 中包含下面两类函数的定义: 
      导出函数:这些函数由可执行模块(.dll 文件或 .exe 文件)调用。
      内部函数:这些函数仅从定义它们的 DLL 中调用。DLL 还导出数据。不过,这些数据由相应的函数使用。

       可以通过下列方式调用 DLL 中的函数:  
        加载时动态链接:可执行模块执行显式调用以导出 DLL 函数。为 DLL 创建导入库,然后将 DLL 链接到应用程序。在加载应用程序时,导入库提供加载 DLL 和查找导出的 DLL 函数所需的信息。
        运行时动态链接:在运行时加载 DLL 时,可执行模块使用 LoadLibrary 函数或 LoadLibraryEx 函数。可执行模块调用 GetProcAddress 函数以获取导出的 DLL 函数的地址。在链接时,Windows 搜索预安装的一组 DLL,例如性能库 (Kernel32.dll) 和安全库 (User32.dll)。然后,Windows 按以下顺序搜索DLL:
    1.当前进程的可执行程序所在的目录。
    2.当前目录。
    3.Windows 系统目录。(GetSystemDirectory 函数获取 Windows 系统目录的路径。)
    4.Windows 目录。(GetWindowsDirectory 函数获取 Windows 目录的路径。)
    5.PATH 环境变量中列出的目录。注意:LIBPATH 环境变量不用于搜索。[3]

        DLL 有一个特殊的入口点(DllMain 函数),它在附加和分离进程和线程时运行。此行为允许根据需要创建和销毁数据结构。文件扩展名为 .ocx、.cpl 和 .drv 的文件类型也是 DLL,尽管文件扩展名已改变。
        您可以通过创建 DLL 实现以下目的:
        (1)将程序划分为可按需加载的单独模块。 
        (2)存储特定于语言或特定于区域的资源。 
        (3)使您自己的应用程序能够使用核心代码库。 
        (4)生成进程内 COM 对象或 ActiveX 控件 (OCX)。 
        (5)将 OLE 对象用作进程内 DLL。这一用法可改进 OLE 链接的性能。 
        (6)使用控制面板扩展或使用某些类型的驱动程序。 [3]

    二、关于以.ocx为后缀名的ActiveX控件

        刚才提到过,文件扩展名为 .ocx、.cpl 和 .drv 的文件类型也是 DLL。

        现在的ActiveX 控件等价与以前的OLE控件或OCX,一个典型的控件包括设计时和运行时的用户界面,唯一的IDispatch接口定义了控件的属性和方法,唯一的 IConnectionPoint接口定义控件可引发的事件。一个控件可以在容器中运行,所以从运行的角度看它类似与一个DLL。[5]

        尽管 ActiveX 和 OLE 都基于组建对象模型(Component Object Model,COM),它们为程序员提供的却是截然不同的服务。COM提供的是低级的对象捆绑机制,该机制支持对象之间的交互通讯。OLE使用COM来提供低级的应用服务,例如采用连接和嵌入机制,支持用户创建复合文档。与之不同,ActiveX提供更精细的结构,用以支持在网络站点上嵌入控件,以及对事件的交互反应。优化ActiveX,目的是为了提高时间和空间效率,而优化OLE,是为了便于终端用户的使用和集成台式系统的应用程序。ActiveX还为Internet技术带来了一些技术上的变革,例如,ActiveX大大减小了代码量(代码量减少了百分之五十到七十),支持更多的提交和异步连接。 [6]

       ActiveX的基础是OLE和COM,但是通过MS的各种开发工具可以屏蔽掉COM模型中许多另人费解的技术细节。ActiveX组件技术包括以下一些方面:(1)自动化服务器 (2)自动化控制器 (3)控件 (4)COM对象 (5)文档 (6)容器 。

       以.ocx为后缀名的ActiveX控件主要应用在WEB上和Window Forms程序开发上。应用程序使用ActiveX/COM组件来扩展自身的业务逻辑、事务处理和应用服务的范围。

       顺便提一下以.ocx为后缀名的ActiveX控件的注册和卸载方法,在“开始”菜单的“运行”输入以下代码完成任务:
        regsvr32 path & "/xxx.ocx" '注册
        regsvr32 /u path & "/xxx.ocx" '卸载

        其中path代表该xxx.ocx所以在的目录的路径。

    三、OCX和DLL的区别

       以.ocx为后缀名的ActiveX控件是一种比较特殊的DLL,它的基础是OLE和COM,是有交互界面的可视化控件,定义了控件的属性和方法,定义控件可引发的事件的响应。我们通常说的.DLL为后缀名的文件是一个包含函数和数据的模块集合,可以被其它应用程序共享的程序模块。

     
    展开全文
  • 今天在读取excel时出现Unable to recognize OLE stream错误,在网上百度了一下,看了一下别人的博客在评论中看到了答案。 导致这个问题可能是因为你的excel版本不对,要交excel的版本设置成.xls不能只改变后缀,要...

    今天在读取excel时出现Unable to recognize OLE stream错误,在网上百度了一下,看了一下别人的博客在评论中看到了答案。

    导致这个问题可能是因为你的excel版本不对,要交excel的版本设置成.xls不能只改变后缀,要将文件另存为.xls文件才行。

    展开全文
  • C#读写Access数据库的OLE对象字段

    千次阅读 2010-01-08 14:14:00
    (一)把文件内容写入Access数据库的OLE对象字段中:if (File.Exists(txtBrow.Text) != false) // 文本框txtBrow中内容为文件路径及文件名{ //获取文件后缀 FileInfo p = new FileInfo(txtBrow.Text.Trim()); F_...
  • 在VC6.0的环境下,当添加添加MS DataGrid控件(COM组件)时,回出现“ Microsoft ADO Data Control,version 6.0(OLEDB) 不支持此接口”的对话框,这时将Insert按钮左边的文件名的后缀.link去掉即可正常添加!
  • jxl.read.biff.BiffException: Unable to recognize OLE stream: ——原因分析:文件为.xlsx文件,非.xls文件,即使修改了后缀名也不可以,依旧会出现这个错误。 jxl.jar中还会有一种情况出现,就是表格的最后一行...
  • 问题:如何在自己的浏览器中控制Office这类Ole Servers的打开方式?    答案:修改文件夹选项,或修改注册表。    方法1、如下所示,从控制面板中打开“文件夹”选项,在“文件类型”属性页上找到相应的文件...
  • 原因:不支出读取 excel 2007 文件(*.xlsx)。...光修改文件后缀不行,需要文件另存(或者导出)为 .xls Excel 1997-2004 格式,然后就好了。 转载于:https://www.cnblogs.com/historylyt/p/7889444.html...
  • 解题思路: 求出所有 最长的 出现在超过一半所给字符串的 ...最后发现OLE是代码写错导致输出的串的数量不对(其实也就是WA),所以导致DEBUG的方向就出错了。 做法是二分答案,判断是否可行,可行就记录当前所...
  • 现在在开发OLEDB和ADO程序,学到了一招,共享大家, 新建一个txt文件,把后缀改成udl,双击会弹出一个界面,输入相应信息最后确定, 再以文本方式打开本文件,即可得到正确的连接串 //下面是网络上搜索到的...
  • 原因:JXL jar包不支持xslx文件 解决办法:File file = new File(“D:/IDEA/imooc/jxl.xls”);文件名修改成xls后缀即可
  • #coding=utf-8 import pypyodbc import win32com.client print("Content-Type: text/...path=r'C:\\Users\\Administrator\\Desktop\\1.mdb' # 数据库文件 ...DSN = 'PROVIDER=Microsoft.ACE.OLEDB.12.0;DATA SOURCE=C:\\
  • 第一种:根据格式不同选则不同的类参数 if ($extension ==‘xlsx’) { $objReader = \PHPExcel_IOFactory::createReader(‘Excel2007’);...第二种:那个表是假的格式,明明就是2007格式的,你改了后缀也没用,所
  • C#访问Excel数据

    千次阅读 2017-10-31 18:32:51
    连接字符串://后缀为.xls的使用 "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\""; //后缀为.xlsx的使用 "Provider=Microsoft.ACE...
  • 或者oleDB形式的Access数据库(数据库文件后缀名为:mdb). 默认安装方式下,如果用xDscWebService DSC资源安装Pull服务器的话,其默认方式是ESENT文件数据库的方式;那么如何把Pull服务器的存储数据库改成Access...
  • excel需要Microsoft.Jet.OLEDB支持 AccessDatabaseEngine_X64 AccessDatabaseEngine ,安装后可以读取excel后缀文件
  • C#编程 Excel操作

    2019-10-07 20:07:52
    使用OLEDB操作Excel,关于OLEDB介绍参考...连接字符串:一个是后缀为.xls,一个是.xlsx "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ...
  • poi中常用的api

    2017-12-28 20:58:13
    poi中常用的api POI支持微软的OLE2格式文件Office 2003及以下版本;同时支持微软的OOXML(Office ...POI使用HFFS对象操作OLE2格式Excel,文件后缀为.xls的;使用XSSF、SXSSF对象操作OOXML格式Excel,文件后缀为.x
  • 一、新建一个以udl为后缀名的文件test.udl 二、用OLE DB Core Servers 方式打开文件   三、填写服务器的名称,这里采用windows的默认认证登录,选择新建的表   测试连接成功后,用记事本打开即可。 [ole...
  • 1、新建txt文件,更改后缀名为udl 2、右击,以OLE DB Core Services 方式打开 3、填写相应的服务器名、登陆方式、数据源 4、以txt方式打开文件,连接字符串已经生成了,怎么样,给力吧 [oledb]; Everything ...
  • 通过jxl读取Excel报错问题

    千次阅读 2017-04-13 15:11:42
    原因是可能你读取的Excel文件后缀名无效:比如(test.xlsx)2016版的Excel工具默认后缀都是.xlsx了,通过jxl.jar只能读取后缀名为xls的Excel文件 问题二: 报Unable to recognize OLE stream 错误和数组越界 ...
  • 2003版本的Access数据库后缀名均为*.mdb 则链接写成Provider=Microsoft.Jet.OLEDB.4.0字符串: public static string dbPath = "mg.accdb"; OleDbConnection oleDb = new OleDbConnection(@"...
  • access:版本2003(后缀.mdb,新版access可另存为2003兼容版) using: using System;using System.Data;using System.Windows.Forms;using System.Data.OleDb;打开数据库: string Con = @"Provider=Microsoft....
  • Graph VB 参考

    2006-03-28 13:41:19
    OLE 程序标识符请参阅特性 可使用 OLE 程序标识符(有时称作 ProgID)创建自动化对象。下表列出了 ActiveX 控件、Microsoft Office 应用程序和 Microsoft Office Web 组件的 OLE 程序标识符。 ActiveX 控件 ...
  • UDL与数据库连接

    万次阅读 2008-12-27 12:04:00
    本篇文章主要用来讲怎么使用OLE DB Universal Data Link (.udl) 文件快速简单的为ADO.NET OleDbConnection 对象创建一个数据库连接。 OLE DB Universal ...使用任何以.udl为后缀名的文件都可以创建一个标准的连接字

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 142
精华内容 56
关键字:

后缀ole