使用xlutils复制XLS时保留命名范围

2024-09-23 20:21:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些代码可以用xlrd打开一个Excel工作簿,用xlutils复制它,用xlwt更新它,然后写回另一个文件。在

生成的工作簿缺少原始工作簿中存在的所有命名区域。我百分之百确定命名范围在原始版本中存在,因为我实际上是在读取它们(从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

Tags: namefromimport版本lenopenxls命名
1条回答
网友
1楼 · 发布于 2024-09-23 20:21:17

目前,答案是不幸的是,noxlwt不支持写名字。也许有一天,但我不希望很快。在

据我所知,在.xls文件中以编程方式写入名称的唯一方法是自动化一个正在运行的应用程序实例,例如在带有^{}或{a2}或某种Visual Basic风格的Windows上Excel本身,等等。我相信有类似的方法来编写脚本OpenOffice.org网站如果您无法使用Excel。在

相关问题 更多 >