无法打开电子表格

时间:2015-12-04 17:26:38

标签: openpyxl

我目前正在解析多个电子表格并遇到打开其中一些问题的问题。产生的错误将我引导到内容属性中将片段连接在一起的行中的文件“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>

1 个答案:

答案 0 :(得分:2)

这与合并的单元格无关,但与文本的存储方式无关。你能提交一份带有测试文件的错误报告吗?