C#中的excel操作

       最近在做一个C#的项目,里面涉及到excel的操作,从网上找来的例子代码,它是基于frameworks 2写的,它对excel的操作是references了一个Interop.Excel,在代码中按如下操作:

 //建立Excel对象
            Excel.Application excel = new Excel.Application();
            excel.Application.Workbooks.Add(true);
            excel.Visible = true;
            //生成字段名称
            for (int i = 0; i < view.ColumnCount; i++)
            {


                excel.Cells[1, i + 1] = view.Columns[i].HeaderText;
            }

        一开始是没有任何问题的,由于我用了irisskin4后,为了与之配合,我把frameworks 2改成了frameworks 4,而后使用excel操作的时候就出现了以下的报错:

              错误:未能加载文件或程序集“Office, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 

      开始从网上找解决方法:

原因:程序中使用的Excel.dll是office2003的程序集生成的, 我服务器上安装的是office2007,版本不匹配。 

 解决方案:把office2007目录下的Excel.exe重新生成Excel.dll  ,工具是TlbImp.exe ,安装Visual Studio的各版本都有。 

   方法:1.本人的是VS2010,TlbImp.exe在目录G:\Program Files\Microsoft SDKs\Windows\v7.0A\bin下,在系统控制台转到这个路径,把Excel.exe也拷贝到这个路径下,命令:TlbImp.exe Excel.exe    如图:

在路径下可以找到已经生成的Excel.dll 。好那就拷贝到Bin目录下,加入到项目引用


在执行CMD的时候,需要以管理员身份执行,否则无法得到Excel.dll,依此办法,系统还是报同样的错误,最后的解决办法是:

1、删除原来的Interop.Excel;

2、从COM中加载Mircrosoft Excel 15.0 Object Library;

3、加入

  1. using Excel = Microsoft.Office.Interop.Excel;  

问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值