在Ironpython中使用XLRD

我想在IronPython 2.7中使用XLRD库

在打开一个.xls文件(2003格式)的最基本的操作中,我得到以下错误,我不知道如何解决它:

workbook = xlrd.open_workbook(xlsfile) File "C:\Program Files (x86)\IronPython 2.7\lib\site-packages\xlrd\__init__.py", line 426, in open_workbook TypeError: sequence item 0: expected bytes or byte array, str found 

有任何想法吗? 我想尽可能使用xlrd,但似乎可能会有一些兼容性问题。 当使用Python 2.7解释器时,文件打开没有问题。

我用xlrd 0.9.2打了一段时间。 bytesbytearraystr ,甚至手工读取文件并将其作为file_contents传递都起作用。

最后,我把xlrd降级到了0.8.0版本,并且正在工作。 🙂

无论出于何种原因, open_workbook似乎要求文件名以字节为单位,而不是string。 尝试:

 workbook = xlrd.open_workbook(bytes(xlsfile)) 

这可能会遇到很多问题:IronPython的string默认是Unicode(如Python 3),而不是像Python 2那样的string。