在IronPython中引用EPPlus .Net库

时间:2012-10-11 17:04:16

标签: .net ironpython epplus

我正在尝试使用IronPython中的EPPlus Dot Net库来打开和更新Excel电子表格,但我无法建立对该库的引用。我不确定问题是在我的代码中,我对引用Dot net库(这是非常基本的)的理解,我下载和“安装”dll的方式,或者它是否与IronPython不兼容。

有人可以建议我如何从IronPython引用这个库吗?

这是我的python代码:

import sys
from collections import OrderedDict
sys.path.append(r'C:\EPPlus')
import clr
clr.AddReference('WindowsBase')
clr.AddReferenceToFile('EPPlus.dll')  # Fails here.

clr.AddReferenceToFile('EPPlus.dll')上的代码失败:

Traceback (most recent call last):
  File "auction_support_epp.py", line 6, in <module>
IOError: System.IO.IOException: Could not add reference to assembly EPPlus.dll
   at IronPython.Runtime.ClrModule.AddReferenceToFile(CodeContext context, Strin
g file)
. . .

这是C:\ EPPlus:

的目录列表
 Directory of c:\EPPlus

10/11/2012  12:50 PM    <DIR>          .
10/11/2012  12:50 PM    <DIR>          ..
10/11/2012  12:35 PM           608,256 EPPlus.dll
               1 File(s)        608,256 bytes
               2 Dir(s)  137,501,888,512 bytes free

我通过下载库的分发zip并将文件剪切并粘贴到我使用Windows资源管理器创建的EPPlus文件夹中来创建EPPlus.dll。

1 个答案:

答案 0 :(得分:0)

通过检查Windows资源管理器中EPPlus.dll文件的属性,我发现该文件被操作系统“阻止”,因为它知道它源自另一台计算机,因此存在潜在危险。单击“取消阻止”按钮使IronPython可以访问该文件。

谢谢,微软!