.net开发经常会操作EXcel,且引用Microsoft Excel 11.0 Object Library(Microsoft.Offce.Core),但有时Excel版本太多(97、2000、2003等),请问如何将其封装,解决版本太多的问题?

解决方案 »

  1.   

    这个没有办法很好的解决.如果只是把Excel的数据做导入导出的,不涉及Excel的各种格式的操作,建议把Excel当做数据库来操作,用Oledb去连接,
    如果是对Excel的操作比较复杂并格式控制较多,还真的不能很好的处理Office的多版本问题.
      

  2.   

    ,建议把Excel当做数据库来操作,用Oledb去连接
      

  3.   

    俺操作的就是:
    对Excel的操作格式控制较多
      

  4.   

    顶。不会启动Excel ,找到一段这样写的:为了在C#中使用Excel,我们要先做一点准备工作,通过查找(前提是你安装Visual Studio.Net和Excel 2000),在你的计算机中找到TlbImp和Excel9.olb,将他们复制到一个文件夹中,在DOS窗口中执行 TlbImp Excel9.olb,这时会产生以下三个文件:Excel.dll、Office.dll和VBIDE.dll。 我是OFFICE2003,.Net2005,找不到Excel9.olb,启动不了Excel,应该怎么办?
      

  5.   

    office2003:
    TlbImp Excel.exe可是生成Excel.dll    protected void Button1_Click(object sender, EventArgs e)
        {
            Excel.Application excel = new Excel.Application();
            excel.Application.Workbooks.Add ( true ) ;
            excel.Cells[ 1 , 1 ] = "First Row First Column" ;
            excel.Cells[ 1 , 2 ] = "First Row Second Column" ;
            excel.Cells[ 2 , 1 ] = "Second Row First Column" ;
            excel.Cells[2, 2] = "Second Row Second Column";
            excel.Visible = true ;
        }这样写还是启动不了Excel,有人能指点下吗?
      

  6.   

    你启动是什么意思,生成excel.dll后,要引入到net中,然后你可以用code 来操作Excel对象.进行复制/删除/制做报表等......
      

  7.   

    Excel.Application excel = new Excel.Application();
            excel.Application.Workbooks.Add ( true ) ;
    这两行有问题:
    一是换个名字,可能excel被系统保留了;
    二是 workbooks对象的ADD方法的参数不对,应该是type.missing吧,试试吧
      

  8.   

    (以下观点只是个人的一点理解)
    tblimp程序好像是为COM组件制作interop程序集的。其实interop程序集里面并没有任何的程序实现,只不过是将COM组件和CLR通过一个类似于语句转换的东西进行联系。所以interop程序集是不能单独运行的,仍然需要COM组件。
    如果我们在.NET IDE里面直接加入一个COM组件的Refrence的话,其实加入到Project里面的只是这个COM组件的interop程序集而已。如果目标机器上面没有这个COM组件或者这个组件没有注册的话,仍然是无法运行的。
    关于Excel多版本的问题,我觉得通过Interop是无法解决的。这就好像我们的.NET程序如何解决1.1、2.0和3.0之间的问题。我们能做的只有:
    (1)不在.NET Project里面直接Refrence Excel的COM组件。
    (2)使用CreateObject来实例化Excel对象。
    (3)所有Excel对象都声明为Object,用晚期绑定实现。
    (4)尽量少使用Excel自己提供的方法,特别是一些高级方法,比如Sort。这些方法通常由于Excel版本的提升而有所改变。但是偏重底层的,比如Cell、Range则一般不会有太大改变。
    (5)强调客户本程序只适用于某(几)个版本的Excel。不要为此造成自己项目的损失。一个便捷的开发方法是可以在本地引用好Excel组件,不使用晚期绑定。这样各种方法属性都可以进行类型检查。Release之前将Excel引用去掉,然后变换为Object声明。