日期:2014-05-17  浏览次数:20755 次

C#操作Excel文件
最近在学习C#操作EXcel文件,在网上某博文中找到这么一段:
====================================================================================
Visual C#中调用Excel的COM组件

  在项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到"Microsoft Excel 9.0 Object Library"(Office 2000),然后将其加入到项目的References中即可。Visual C#.NET会自动产生相应的.NET组件文件,以后即可正常使用。

  这个转换形成.NET组件不能单独使用,它不过是以前的COM组件的一个外层包装,在.NET中可以通过这个外层包装去发现原来的COM组件并调用其相应的界面函数。所以它必须与原来的COM组件一起起作用。

  2、Visual C#打开Excel表格

  事实上,在C#中使用一个经转换的COM组件和使用任何一个其它.NET组件完全一样。可以用new关键字创建一个经转换的COM组件,然后再像使用任何一个其它C#对象一样使用这个组件对象。

  在转换后的.NET组件中定义了一个命名空间Excel,在此命名空间中封装了一个类Application,这个类和启动Excel表格有非常重要的关系,在Visual C#中,只需要下列三行代码就可以完成打开Excel表格的工作,具体如下:

Excel.Application excel = new Excel.Application ();//引用Excel对象
excel.Application.Workbooks.Add ( true );//引用Excel工作簿
excel.Visible = true ;//使Excel可视
===================================================================================
于是我按照以上步骤操作,结果发现


请问这是为什么啊?

------解决方案--------------------
    你在命名空间里实例化类 真是搞笑。

    写个类再在类里面写个函数比如
class  bb
{
 void aa()
{
    Excel.Application excel = new Excel.Application ();//引用Excel对象
excel.Application.Workbooks.Add ( true );//引用Excel工作簿
excel.Visible = true ;//使Excel可视
}
}
------解决方案--------------------
新建的页面也不会是这样的吧,怎么就直接实例化了。。。。
------解决方案--------------------
他那还是"Microsoft Excel 9.0 Object Library"(Office 2000)的呢,你机器上估计是2007或者2010吧,重新引用Microsoft Excel 12.0 Object Library或者Microsoft Excel 14.0 Object Library

另外引用完了你得using Microsoft.Office.Interop.Excel;
------解决方案--------------------
命名空间下面包含的当前类的构造函数,其他函数,所以需要新建一个构造函数,就是在类里面声明刚才你的excle读取操作