我正在尝试使用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
其他信息:
希望你能帮助我解决这个问题,因为这是第一次真正展示python在我的业务范围内的强大功能。
提前致谢。