Python win32读取/修改/存储/映射名称框

时间:2015-09-03 16:32:23

标签: python excel xlsx xlrd win32com

我试图在复杂的Excel工作簿上做一些工作,该工作簿包含大量已使用名称框功能创建和使用的变量。有关示例/详细信息,请参见附图。 我想存储或更改DeathRate或者读取所有名称框,并在Excel外部的单元格名称和位置之间创建字典。 我在Python中使用win32com库,但我想我可以切换到另一个Excel阅读器,只要它能处理XLSX文件。 有人曾经遇到过这个吗?

enter image description here

1 个答案:

答案 0 :(得分:0)

找到解决方案,请参阅以下代码:

import os
from win32com.client import Dispatch #win32com is based around cells beginning at one.
app_xl = Dispatch("Excel.Application")
WORKING_DIR = os.getcwd()
excelPath = WORKING_DIR + "\SampleModel.xls"

wb = app_xl.Workbooks.Open(excelPath)

# Get Named Boxes
name_box_list = [x for x in app_xl.ActiveWorkbook.Names]
name_box_map = {x.Name:x.Value for x in name_box_list}

print name_box_list
print name_box_map

# Change Named Boxes
name_box_list[0].Name = u'NewName'
name_box_list[0].Value = u'=model!$B$5'
name_box_map = {x.Name:x.Value for x in name_box_list}