有没有一种方法可以使用Python将数据保存在命名的Excel单元中?

时间:2020-03-25 01:16:43

标签: python excel openpyxl

我已经使用openpyxl在Python代码中的Excel中输出值。但是,现在我发现自己处于excel文件中单元格位置可能会根据用户而变化的情况。为了避免程序出现任何问题,我想命名代码可以将输出保存到的单元格。有什么方法可以让Python与Excel中的命名范围进行交互?

2 个答案:

答案 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()