2017-05-16 2 views
1

Wie durchlaufe ich die Zellen in einem Excel benannten Bereich/definierten Namen und setze jeden Zellwert innerhalb des benannten Bereichs mit openpyxl mit Python 2.7?Mit Excel benannte Bereiche in Python mit openpyxl

Ich habe Folgendes gefunden, aber ich habe es nicht geschafft, es zum Drucken und Einstellen der Werte einzelner Zellen innerhalb des benannten Bereichs zu arbeiten.

Read values from named ranges with openpyxl

Hier ist mein Code so weit, ich habe in den Kommentaren stellen, wo ich die Änderungen bin auf der Suche nach. Danke im Voraus.

#accessing a named range called 'metrics' 
    namedRange = loadedIndividualFile.defined_names['metrics'] 

    #obtaining a generator of (worksheet title, cell range) tuples 
    generator = namedRange.destinations 

    #looping through the generator and getting worksheet title, cell range 

    cells = [] 
    for worksheetTitle, cellRange in generator: 
     individualWorksheet = loadedIndividualFile[worksheetTitle] 

     #============================== 
     #How do I set cell values here? 
     # I am looking to print and change each cell value within the defined name range 
     #============================== 

     print cellRange 
     print worksheetTitle 
     #theWorksheet = workbook[worksheetTitle] 
     #cell = theWorksheet[cellRange] 
+0

Was genau verstehst du nicht? –

+0

Extrahieren einzelner Zellenwerte, aber ich habe es jetzt gelöst und werde die Lösung veröffentlichen, falls jemand anderes das gleiche Problem hat. Danke, dass du dich darum gekümmert hast. – Py1001

Antwort

-1

Ich schaffte es, es zu lösen. Vielleicht ist das Folgende nützlich für jemand anderen, der mit openpxl auf die Werte jeder Zelle in einem definierten Namen oder benannten Bereich zugreifen möchte.

import openpyxl 

wb = openpyxl.load_workbook('filename.xlsx') 
#getting the address 
address = list(wb.defined_names['metrics'].destinations) 

#removing the $ from the address 
for sheetname, cellAddress in address: 
    cellAddress = cellAddress.replace('$','') 

#looping through each cell address, extracting it from the tuple and printing it out  
worksheet = wb[sheetname] 
for i in range(0,len(worksheet[cellAddress])): 
    for item in worksheet[cellAddress][i]: 
     print item.value` 
Verwandte Themen