Openpyxl保存错误“参数必须是字节或unicode,得到'bool'”

时间:2016-09-20 16:06:54

标签: python-2.7 anaconda jupyter openpyxl

我正在尝试使用Openpyxl v2.3.2自动化Excel仪表板。我正在使用jupyter笔记本(Anaconda 4.11)使用Python 2.7运行我的代码。

我有一个现有的电子表格,我试图改变然后保存。经过一些游戏后,我注意到它没有正确保存,所以我将每张纸(逐个)放入一个新的电子表格中并尝试​​再次保存。我注意到每次都抛出相同的错误。我正在运行的代码如下(非常简单)

import openpyxl as xl
TVXL = xl.load_workbook('Dashboard.xlsx')
TVXL.save('TVXL.xlsx')

返回错误

TypeError: Argument must be bytes or unicode, got 'bool'

完整错误消息的最相关部分是:

C:\Users\v7736101\AppData\Local\Continuum\Anaconda2\lib\site-packages\openpyxl\writer\styles.pyc in write_table(self)
 32         self._write_fonts()
 33         self._write_fills()
---> 34         self._write_borders()
 35 
 36         self._write_named_styles()

C:\Users\v7736101\AppData\Local\Continuum\Anaconda2\lib\site-packages\openpyxl\writer\styles.pyc in _write_borders(self)
 66         borders_node = SubElement(self._root, 'borders', count="%d" % len(self.wb._borders))
 67         for border in self.wb._borders:
---> 68             borders_node.append(border.to_tree())
 69 
 70     def _write_named_styles(self):

C:\Users\v7736101\AppData\Local\Continuum\Anaconda2\lib\site-packages\openpyxl\descriptors\serialisable.pyc in to_tree(self, tagname, idx, namespace)
 97                 del attrs[key]
 98 
---> 99         el = Element(tagname, attrs)
100 
101         for child_tag in self.__elements__:

lxml.etree.pyx in lxml.etree.Element (src\lxml\lxml.etree.c:75395)()

apihelpers.pxi in lxml.etree._makeElement (src\lxml\lxml.etree.c:16379)()

apihelpers.pxi in lxml.etree._makeElement (src\lxml\lxml.etree.c:16236)()

apihelpers.pxi in lxml.etree._initNodeAttributes (src\lxml\lxml.etree.c:18647)()

apihelpers.pxi in lxml.etree._addAttributeToNode (src\lxml\lxml.etree.c:18846)()

apihelpers.pxi in lxml.etree._utf8 (src\lxml\lxml.etree.c:30113)()

TypeError: Argument must be bytes or unicode, got 'bool'

顶部错误向我表明边框格式存在错误(或不兼容)但在使用某些边框样式后,我似乎无法修复它。

这是我正在尝试保存的文档的屏幕截图。

screenshot of daily calls that feeds into the dashboard, one of 5 similar tabs

其他信息:

  1. Dashboard.xlsx不受影响(可能是因为如果我在不保存更改的情况下重新启动内核就会收集垃圾),但输出文档TVXL.xlsx已损坏且无法打开。
  2. 引发的错误是在serialisable.pyc中,但我无法通过阅读它来判断该函数是做什么或者它是如何通过的。
  3. 在我的电子表格的屏幕截图中,我添加了虚拟数据,因为它是敏感信息
  4. 希望你能帮助我解决这个问题,因为这是第一次真正展示python在我的业务范围内的强大功能。

    提前致谢。

0 个答案:

没有答案