我有一些代码可以用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
目前,答案是不幸的是,no,
xlwt
不支持写名字。也许有一天,但我不希望很快。在据我所知,在.xls文件中以编程方式写入名称的唯一方法是自动化一个正在运行的应用程序实例,例如在带有^{} 或{a2}或某种Visual Basic风格的Windows上Excel本身,等等。我相信有类似的方法来编写脚本OpenOffice.org网站如果您无法使用Excel。在
相关问题 更多 >
编程相关推荐