我已经使用openpyxl在Python代码中的Excel中输出值。但是,现在我发现自己处于excel文件中单元格位置可能会根据用户而变化的情况。为了避免程序出现任何问题,我想命名代码可以将输出保存到的单元格。有什么方法可以让Python与Excel中的命名范围进行交互?
答案 0 :(得分:1)
对于工作簿级别定义的名称
import openpyxl
wb = openpyxl.load_workbook("c:/tmp/SO/namerange.xlsx")
ws = wb["Sheet1"]
mycell = wb.defined_names['mycell']
for title, coord in mycell.destinations:
ws = wb[title]
ws[coord] = "Update"
wb.save('updated.xlsx')
print("{} {} updated".format(ws,coord))
答案 1 :(得分:0)
我能够使用define_names找到命名范围的参数。之后,我就像一个普通的Excel单元一样工作。
from openpyxl import load_workbook
openWB=load_workbook('test.xlsx')
rangeDestination = openWB.defined_names['testCell']
print(rangeDestination)
sheetName=str(rangeDestination.attr_text).split('!')[0]
cellName = str(rangeDestination.attr_text).split('!')[1]
sheetToWrite=openWB[sheetName]
cellToWrite=sheetToWrite[cellName]
sheetToWrite[cellName]='TEST-A3'
print(sheetName)
print(cellName)
openWB.save('test.xlsx')
openWB.close()