为什么在打开.xlsm而不是.xls时出现python xlrd错误

时间:2019-03-11 20:30:11

标签: python xlrd

Python程序可以很好地打开.xls,但是不会打开.xlsm并立即失败。

xlrd.open_workbook("Some filename.xlsm")  

错误:发生异常:AttributeError 'bytes'对象没有属性'seek'

任何帮助将不胜感激...

2 个答案:

答案 0 :(得分:0)

针对那些遇到此问题的人。解决方案是通过二进制将文件读取到变量中,以避免使用open_workbook库加载文件...我认为这与编码为utf-16-le的文件有关……无论如何,这都是一段代码需要发生。

with open(FilePath, 'rb') as tmp_file:
   tmp_excel=tmp_file.read()
tmp_file.close

objExcel=xlrd.open_workbook(file_contents=tmp_excel)

答案 1 :(得分:-1)

在xlrd中有一个文件类型的测试。以某种方式,.xlsm文档的文件类型不是'.xls'。 对于xlrd的1.2.0版,这不是问题。