2017-11-16 3 views
-1

を使ってPython 2のセルアドレスをエクセル取得:私は次のシナリオ持っopenpyxl

  1. をelse文場合は、すべてのアクティブな行
  2. ランの列AのExcelファイルを読む:列Aが==「登録されている場合'、何もせずに次の行を読むだけです。そうでなければ、セルアドレス(ない値)を取得し、例えば、いくつかのアクションに

を行い、ここで私の "sample.xlsx" は、次のとおりです。

[行1] A1 =登録B1 = user1の

[私のコードはROW1とROW2を無視し、行3の行3を進めるべきである

行2] A2 =登録B2 = USER2

[列3] A3 = NULL B3 = USER3、私が "A3" を取得する必要がありますいくつかのアクションを実行します。

from openpyxl import load_workbook 
book = load_workbook(filename='sample.xlsx') 
sheet = book.active 
first_column = sheet['A'] 

for x in xrange(len(first_column)): 
    status = first_column[x].value 

    if status == 'registered': 
     #enter code to just proceed with the next row 

    else: 
     #enter code to get the column cell range and do some actions 

book.save('sample.xlsx') 

私はシナリオ2でstuckedだ、私はPythonで初心者です、私はFileScannerを使用してJavaのコードを持っているが、私はあなたの助けに感謝のPython 2にそれを必要とします。

更新: 私はすでに以下の回答がありますが、他の方法があるかどうか疑問に思っていますか?

+0

を読むのに役立ちますあなたの所望の出力を共有してくださいでした他の人が手助けするために、それが簡単になります。 –

+0

見てください、私はちょうど答えを投稿しました。 –

答えて

-1

これまで、私はこれらを試しました。他の方法はありますか?

[列1] A1 =登録B1 = USER1

[行2] A2 =登録B2 = USER2

[行:ここ

from openpyxl import load_workbook 
book = load_workbook(filename='sample.xlsx') 
sheet = book.active 
first_column = sheet['A'] 
checker = 'false' 

for x in xrange(len(first_column)): 
    status = first_column[x].value 
    xaddress = first_column[x].column 
    yaddress = first_column[x].row 
    celladdress = xaddress+str(yaddress) 


    if status != 'registered': 
     print celladdress 
     checker == 'true' 
     break 

if checker == 'true': 
    #... my actions here .... 

は私 "sample.xlsx" であります3] A3 = nullのB3 =

出力USER3:A3

-1

は見てください


import openpyxl 

wb = openpyxl.load_workbook('sample.xlsx') 
ws = wb.active 

for row in ws.iter_rows('A{}:A{}'.format(ws.min_row,ws.max_row)): 
    for cell in row: 
    if cell.value != "registered": 
     print cell.column 
     print cell.row 
     ## further processing here ####### 

それの世話をします。このforループ繰り返し明示的な行のためのロジックを記述する必要はありません。

は、それはあなたを助けることを願っています:)

+0

iter_rows()でA1:D4座標を使用する必要はありません –

+0

@CharlieClark次に、代わりの方法と最善の方法を手伝ってください –

関連する問題