使用excel application编程

1 调用Excel的COM组件。
    在项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到"Microsoft Excel 11.0 Object Library"(Office 2003),然后将其加入到项目的References中即可。

    但是打包之后会出一些问题,最好将excel.exe 转变成excel.dll引用。

   方法是将Office目录下的Excel.exe文件拷出来,把Excel.exe文件考到C:/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin里,然后运行VS2005命令提示输入TlbImp EXCEL.EXE Excel.dll
然后会在C:/Program Files/Microsoft Visual Studio 8/VC下找到Excel.dll

 

2 调用excel.Application.Workbooks.Add(Missing.Value)会遇到如下错误:
Exception:
        Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
这是Excel自身的一个bug,当本地系统环境被设置成非英文的,而Excel是英文的时候,就会出现,需要临时设定英文环境,代码如下:
    System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture;//保存当前系统环境
    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
转自:http://hi.baidu.com/iceglaze/blog/item/4b63c3c4ed2fcead8226ac8e.html

3 最后记得要清理内存和恢复环境
    System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
    while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excel) > 0) ;
    range = null;
    sheet = null;
    book = null;
    excel = null;
    GC.Collect();
    System.Threading.Thread.CurrentThread.CurrentCulture = CurrentCI;//恢复系统环境
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值