でExcelワークブックを開き、xlrd
でコピーし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