我目前正在解析多个电子表格并遇到打开其中一些问题的问题。产生的错误将我引导到内容属性中将片段连接在一起的行中的文件“Cell \ text.py”。
workBook = openpyxl.load_workbook(filepath, True)
File "C:\Python34\lib\site-packages\openpyxl-2.3.1-py3.4.egg\openpyxl\reader\excel.py", line 191, in load_workbook
shared_strings = read_string_table(archive.read(strings_path))
File "C:\Python34\lib\site-packages\openpyxl-2.3.1-py3.4.egg\openpyxl\reader\strings.py", line 21, in read_string_table
text = Text.from_tree(node).content
File "C:\Python34\lib\site-packages\openpyxl-2.3.1-py3.4.egg\openpyxl\cell\text.py", line 182, in content
return "".join(snippets)
TypeError: sequence item 3: expected str instance, NoneType found
如果我改变代码以检查格式化部分中块的附加,如下所示:
for block in self.formatted:
if(block.t is not None):
snippets.append(block.t)
它工作正常,我只是想知道excel表格中是否存在一些明显的问题,我不明白有人可以说清楚。我没有根据openpyxl的代码,因此我不确定是什么决定了“self.formatted”的内容,但是,我的猜测是它是由电子表格区域中的合并单元格引起的。
修改
在阅读完您的评论后,我深入了解一下,看看是否有任何数据可以与您分享。我更新了Content属性(“Cell / Text.py”)以输出它尝试加入的数据,并在“sharedStrings.xml”中搜索xml数据。印刷数据是:
['“Replaced Data”', None]
在查看sharedStrings文件后,包含此数据的xml是:
<si>
<r>
<t>“Replaced Data”</t>
</r>
<r>
<rPr>
<sz val="11"/>
<color rgb="FF008080"/>
<rFont val="Calibri"/>
<family val="2"/>
<scheme val="minor"/>
</rPr>
<t/>
</r>
</si>
答案 0 :(得分:2)
这与合并的单元格无关,但与文本的存储方式无关。你能提交一份带有测试文件的错误报告吗?