2017-05-16 13 views
1

Excelで名前付き範囲/定義名のセルをループし、Python 2.7でopenpyxlを使用して名前付き範囲内の各セル値を設定するにはどうすればよいですか?Pythonでopenpyxlを使用してExcelで名前付き範囲を使用する

私は以下を見つけましたが、名前付き範囲内の個々のセルの値を印刷して設定することはできませんでした。

Read values from named ranges with openpyxl

ここに私のコードは、これまでのところ、私は変更を加えるために探していますコメントに入れているのです。期待してくれてありがとう。

#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

わかりません。 –

+0

個々のセルの値を抽出していますが、今解決しており、他の誰かが同じ問題を抱えている場合に備えて解決策を投稿します。それを調べてくれてありがとう。 – Py1001

答えて

-1

私はそれを解決するために管理。おそらく、以下は、openpyxlを使って定義された名前または名前付き範囲の各セルの値にアクセスしようとする他の人にとっては役に立ちます。

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` 
関連する問題