我有一些代码用xlrd
打开Excel工作簿,用xlutils
复制,用xlwt
更新,然后将其写回另一个文件。
生成的工作簿缺少原始文件中存在的所有命名范围。我100%确定原始中存在命名范围,因为我实际上正在阅读它们(在复制之前从xlrd
对象中读取)并将更新基于它们。
假设这是使用xlutils.copy.copy
的自然效果,xlwt
是否有某种方式可以重新创建我从同一工作簿的xlrd
版本中读取的命名范围?文档(至少,我能找到的)很稀疏。
这是一个显示问题的python会话:
>>> from xlrd import open_workbook
>>> wb = open_workbook('sc_auction_template.xls', formatting_info=True)
>>> print len(wb.name_obj_list) # see, there are named ranges
9
>>> from xlutils.copy import copy
>>> wb2 = copy(wb)
>>> wb2.save('test.xls')
>>> wb = open_workbook('test.xls')
>>> print len(wb.name_obj_list) # but now there are none!
0