2016-08-03 1 views
2

私が読んでいるExcel文書があります。行数が不明です。それぞれの行とABとCの3つの値を追加します。リストに入ったら、私は一度も届かなくなったら停止します。次に、リスト内の各項目に対してアクションを実行したいとします。pythonリストに項目を追加して空の値を取得したら終了します

誰かが助けてくれるなら、私はif/for loopsとひどいです。

以下は、引数3をブックとシートとして読み込みます。私はラインA61で始まり、A61,B61,C61をリストに追加して、何かが=でなければ続ける必要があります。

さて、私はこれまでこれを得ました、今行の各項目に対してどのようにコマンドを実行しますか?私は(ROW1、ROW2)を作成ROW1の各項目について VLANをコマンドを実行したい

if len(sys.argv) > 3: 
wb = xlrd.open_workbook(sys.argv[3]) 
sheet = wb.sheet_by_index(0) 
first_kvm_ip = str(sheet.cell_value(34,1)) 
last_kvm_ip = str(sheet.cell_value(35,1)) 
kvm_netmask = str(sheet.cell_value(36,1)) 
rows = sheet.nrows 
curr_row = 52 
while (curr_row < rows - 1): 
    curr_row += 1 
    row1 = int(sheet.cell_value(curr_row,0)) 
    row2 = str(sheet.cell_value(curr_row,1)) 
    vlanls1.append(row1) 
    vlanls2.append(row2) 

私は反復のために必要と想定しています。私はちょうどそれで助けが必要です。

私はついにそれを得たと思うよし

mo = FabricVlan(parent_mo_or_dn="fabric/lan", sharing="none", name=row2,   id=row1, mcast_policy_name="", policy_owner="local", default_net="no",  pub_nw_name="", compression_type="included") 
handle.add_mo(mo) 

ROW1の反復ごとに、このコマンドを実行する必要があり、ROW2。助けてくれてありがとう。

if len(sys.argv) > 3: 
    wb = xlrd.open_workbook(sys.argv[3]) 
sheet = wb.sheet_by_index(0) 
first_kvm_ip = str(sheet.cell_value(34,1)) 
last_kvm_ip = str(sheet.cell_value(35,1)) 
kvm_netmask = str(sheet.cell_value(36,1)) 
rows = sheet.nrows 
curr_row = 52 
while (curr_row < rows - 1): 
    curr_row += 1 
    row1 = int(sheet.cell_value(curr_row,0)) 
    row2 = str(sheet.cell_value(curr_row,1)) 
    vlanls1.append(row1) 
    vlanls2.append(row2) 
for x,y in zip(vlanls1,vlanls2): 
    mo = FabricVlan(parent_mo_or_dn="fabric/lan", sharing="none", name=y, id=x, mcast_policy_name="", policy_owner="local", default_net="no",  pub_nw_name="", compression_type="included") 
    handle.add_mo(mo) 
+1

はすべてあなたが今まで試してみました何も、ループのために働くような方法をよく読んで?あなたはGoogleまたはstackoverflowでファイルを読み取るの類似の問題を見てみましたか? –

+0

絶対に、あきらめる前に約3〜4時間を探していました。それは私が本当に必要なExcelファイルを読んでいない、そのリストにデータを追加し、リストの項目の量を実行し、その後停止します。 – BMOO

答えて

1

worksheet.rowsは、いくつあってもすべての行のリストを返します。そのリスト内の各行は、それ自体がその行のセルのリストです。これを知っていると、各行を反復して最初の3つのセルを新しいリストに追加するループを実装することはかなり簡単です。

このコードはこのトリックを行う必要があります。

私はopenpyxlのドキュメントを読むことをお勧めします。あなたは彼らとのトラブルを持って知っていれば:)

http://openpyxl.readthedocs.io/en/default/index.html

http://www.tutorialspoint.com/python/python_for_loop.htm

+0

元の投稿の末尾に投稿することはできますか?私はこの窮屈な空間で何が起こっているのかを知ることはできません。 – ProgramGamer

関連する問題