我有一些代码可以打开 Excel 工作簿xlrd
,使用 复制,使用xlutils
更新,xlwt
然后将其写回另一个文件。
生成的工作簿缺少原始中存在的所有命名范围。我 100% 确定原件中存在命名范围,因为我实际上是在读取它们(从xlrd
对象中,在复制之前)并基于它们进行更新。
假设这是 using 的自然效果,我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