powershell 问题之二调用Excel的Com组件报错

来源:互联网 发布:js取小数点前面的数字 编辑:程序博客网 时间:2024/05/17 10:56

首先介绍一下问题:使用Powershell调用com组件的时候(Excel),代码如下:

 

在“$b = $excel.Workbooks.Add()”报如下的错误:

Exception calling "Add" with "0" argument(s): "Old format or invalid type library. (Exception from HRESULT: 0x80028018(TYPE_E_INVDATAREAD))"

微软的官方解释是由于本地的windows系统语言和Office的语言不都是英文所致,链接如下:http://support.microsoft.com/default.aspx?scid=kb;en-us;320369。根据微软的建议方案把本地系统设置成英文环境,问题依旧。

最终在如下的地址找到解决方案:http://wouter.shush.com/2007/08/excel-automation-with-powershell

我的代码的最终格式是:

 

注意以上红色字体的内容。我的Powershell是CTP 2.0,还是存在这个BUG,希望正式版之后问题可以解决。


在最新的RTM版中这个问题已经得到解决。最新版下载:

http://support.microsoft.com/kb/968929