Python openpyxl load_workbook 错误 : TypeError (NoneType not Iterable) and ValueError (Max. 值为 180)

标签 python windows excel

所以我在 Windows XP 笔记本电脑上安装了 Python 3.4.1。我得到了 openpyxl 包(现在不记得是哪个版本了,我想是 2.1),我一直在努力,编写自定义代码来根据我工作场所的需要修改 Excel 文档。

然后我格式化了我的笔记本电脑(出于工作原因)并安装了 Windows 7。我再次掌握了 Python 3.4.1。我 pip 安装了 openpyxl(在我的命令提示符中显示“pip install openpyxl”)——这次绝对是 2.1 版。然后,我尝试打开我以前的一些工作簿。

这是在 IDLE GUI 界面中 - 不是在脚本或任何东西中。我只是输入(在正确导入 openpyxl->load_workbook 之后):

wb=load_workbook('文件名.xlsx')

现在我得到了错误。该文件由 Excel 2007 创建(在 Windows XP 中创建,在我格式化我的笔记本电脑和安装 Windows 7 之前),我以前能够在我早期的 Windows XP 配置上使用我的 openpyxl 包打开它。在尝试使用 openpyxl 打开之前,我还尝试在 MS Excel(Windows 7)中重新打开 Excel 文件并重新保存。我以前的 Windows XP 和新的 Windows 7 都是 32 位的(没有任何地方是 64 位的)。

我得到的错误(取决于我尝试打开的文件)是:

1 号文件错误:

Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
wb=load_workbook('Filename.xlsx')
File "C:\Python34\lib\site-packages\openpyxl\reader\excel.py", line 151, in load_workbook
_load_workbook(wb, archive, filename, read_only, keep_vba)
File "C:\Python34\lib\site-packages\openpyxl\reader\excel.py", line 244, in _load_workbook
wb._external_links = list(detect_external_links(rels, archive))
File "C:\Python34\lib\site-packages\openpyxl\workbook\names\external.py", line 100, in detect_external_links
Book.links = list(parse_ranges(range_xml))
File "C:\Python34\lib\site-packages\openpyxl\workbook\names\external.py", line 85, in parse_ranges
for n in safe_iterator(names, '{%s}definedName' % SHEET_MAIN_NS):
TypeError: 'NoneType' object is not iterable

2 号文件错误:

Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
wb=load_workbook('Filename.xlsx')
File "C:\Python34\lib\site-packages\openpyxl\reader\excel.py", line 151, in load_workbook
_load_workbook(wb, archive, filename, read_only, keep_vba)
File "C:\Python34\lib\site-packages\openpyxl\reader\excel.py", line 205, in _load_workbook
style_table, color_index, cond_styles = read_style_table(archive.read(ARC_STYLE))
File "C:\Python34\lib\site-packages\openpyxl\reader\style.py", line 215, in read_style_table
p.parse()
File "C:\Python34\lib\site-packages\openpyxl\reader\style.py", line 44, in parse
self.parse_cell_xfs()
File "C:\Python34\lib\site-packages\openpyxl\reader\style.py", line 191, in parse_cell_xfs
_style['alignment'] = Alignment(**alignment)
File "C:\Python34\lib\site-packages\openpyxl\styles\alignment.py", line 54, in __init__
self.textRotation = textRotation
File "C:\Python34\lib\site-packages\openpyxl\styles\hashable.py", line 54, in __setattr__
return object.__setattr__(self, *args, **kwargs)
File "C:\Python34\lib\site-packages\openpyxl\descriptors\__init__.py", line 89, in __set__
super(Min, self).__set__(instance, value)
File "C:\Python34\lib\site-packages\openpyxl\descriptors\__init__.py", line 68, in __set__
raise ValueError('Max value is <0>'.format(self.max))
ValueError: Max value is 180

对于第二种情况,我转到 __init__.py 文件并添加一行来打印生成的值。结果是 255,即 > 180(因此出现错误)。我不知道这个值代表什么 - 文档中独特样式的数量或其他什么?

openpyxl 是否有任何依赖项?我已经正确安装了 Excel(现在在 Windows 7 中),带有 Service Pack 1。我还尝试卸载 Python 3.4.1 和 openpyxl 并重新安装,三到四次。

这可能是什么问题?

提前感谢您的回答。

最佳答案

要修复NoneType错误,请清除excel中数据的格式,然后才能加载excel。

关于Python openpyxl load_workbook 错误 : TypeError (NoneType not Iterable) and ValueError (Max. 值为 180),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25983420/

相关文章:

python - 在 Python 中运行 shell 脚本一段给定的时间

python - 如何将 Pandas 时间序列转换为带有字符串键的字典

python - 如何使用 wide-build 在 Mac 上安装 python

python - 在centos 7中安装pymssql时出错

windows - Redis 服务在 Windows 中启动并立即停止

c - 我可以用什么来替代管道的 GetFileSize() ?

excel - 如何在VBA代码中设置可变的列宽

php - Excel 的当前汇率

windows - 无法安装 perl CPAN 模块 POSIX::strptime

Excel/VBA 在从 VBA 转置/粘贴时将日期转换为美国格式