1
我有一些代碼可以打開一個帶有xlrd
的Excel工作簿,將它複製爲xlutils
,然後用xlwt
更新它,然後將其寫回到另一個文件。使用xlutils複製XLS時保留命名範圍
生成的工作簿缺少原來存在的所有命名範圍。我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
什麼是「formatting_info = True」?你已經把它放在第一個開放的,但不是第二個......爲什麼? – Antoni4040
需要xlrd從電子表格中讀取單元格格式信息。這是因爲我剪下了這段代碼並從實際運行的代碼中編輯了下來。我認爲這與命名的範圍問題沒有關係(除了它證明我必須爲了將單元格格式從電子表格移動到電子表格而遇到一些麻煩)。 –