Python XLRD 错误 : formula/tFunc unknown FuncID:186

标签 python windows excel python-2.7 xlrd

我被这个难住了,请帮助我哦,聪明的堆栈交换器......

我有一个使用 xlrd 读取 .xls 文件的函数,该文件是我公司每隔几个月发布的文件。该文件始终采用相同的格式,只是具有更新的数据。我过去在读取 .xls 文件时没有遇到问题,但最新版本的 .xls 文件未被读取并产生此错误:*** formula/tFunc unknown FuncID:186

我尝试过的事情:

  • 我将新的 .xls 文件与旧的进行了比较,看是否能发现任何问题 差异。没有我能找到的。

  • 我删除了文件中包含的所有宏(旧版本也有宏)

  • 将xlrd更新到0.9.3版本,但得到同样的错误

  • 这些文件最初是 .xlsm 文件。我打开它们并将它们另存为 .xls 文件,以便 xlrd 可以读取它们。这在文件的先前版本上工作得很好。升级到据称支持 .xlsx 的 xlrd 0.9.3 后,我尝试将 .xlsm 文件保存为 .xlsx 并尝试将其读入,但出现错误并显示空白错误消息

有用的信息:

  • python 2.7
  • xlrd 0.9.3
  • Windows 7(不确定这是否重要但是...)

我的猜测是新文件中有某种 xlrd 无法读取的公式。有人知道FuncID: 186 是什么吗?

编辑:仍然不知道该去哪里。有人遇到这个吗?我尝试搜索 FuncID 186 以查看它是否是 excel 函数,但无济于事...

最佳答案

现在我只想确保 xlrd 读取正常。我破解了我的 xlrd 包,以便它加载。

我不保证输出的正确性。

只需在 pythonlibs/xlrd 包的 formula.py 中添加以下行。

在第 240 行附近,每个数字都映射到一个函数,在这里创建一个被黑函数。我在其中插入了“HACKED”。我不明白到底发生了什么。

-- 添加了以 186 开头的行:

184: ('FACT', 1, 1, 0x02, 1, 'V', 'V'),
186: ('HACKED', 1, 1, 0x02, 1, 'V', 'V'), 
189: ('DPRODUCT', 3, 3, 0x02, 3, 'V', 'RRR'), 

这里是xlrd group的讨论。本质上,这是一个无法解决的复杂问题。 :)

https://groups.google.com/forum/#!topic/python-excel/ZS5PsC5A6iQ

关于Python XLRD 错误 : formula/tFunc unknown FuncID:186,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29971186/

相关文章:

python - 模块未找到错误: No module named 'torch'

javascript - 将数据从大容量 csv 过滤到小 csv

php - 使用 PHP 获取 xls(Excel 文件) PHPOffice PHPExcel

python - NamedTemporaryFile 在 Windows 上有什么用?

windows - 使用 PowerShell 的 IIS 输出缓存设置

windows - SVN $RECYCLE.BIN

vba - 获取列中填充单元格的数量 (VBA)

python - 如何根据索引位置将列表列表连接到另一个小列表?

python - 在python中重命名多个文件

Python - 使用 strptime() 将 "20:52:30.0000000+02:00"转换为日期时间