Есть ли способ сохранить данные в именованных ячейках Excel, используя Python? - PullRequest
0 голосов
/ 25 марта 2020

Я использовал openpyxl для вывода значений в Excel в моем коде Python. Однако теперь я нахожусь в ситуации, когда расположение ячеек в файле Excel может меняться в зависимости от пользователя. Чтобы избежать каких-либо проблем с программой, я хочу назвать ячейки, в которых код может сохранить вывод. Есть ли способ заставить Python взаимодействовать с именованными диапазонами в Excel?

Ответы [ 2 ]

1 голос
/ 25 марта 2020

Для названия уровня, определенного в книге,

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))

0 голосов
/ 25 марта 2020

Мне удалось найти параметры именованного диапазона, используя определенные имена. После этого я просто работал как обычная ячейка 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()


...