

python 初心者で 根本的なことをあまり理解できてませんが、お教えください。

エクセルVBAに限界を感じて、python3でのエクセルデータ読み書きにトライしてるのですが  
xlrd、xlwt を見よう見まねで記述しても・・・・うまく出来ず。

例えば、エクセル（指定ファイル、指定シート）の  
1行目からA列の値（読み）を順次読んで、  
B列に値を出力（書き）する場合は、どのように記述すれば良いのでしょうか？

[code]

    # -*- coding: utf-8 -*-
    
    import xlrd
    import xlwt
    
    book = xlrd.open_workbook('j.xls') 
    sheet_1 = book.sheet_by_index(0)
    
    for row in range(sheet_1.nrows):
        if sheet_1.cell(row, 1).value >= 10 :
            sheet_1.write(row, 2, '10以上')
        else
            sheet_1.write(row, 2, '10未満')
    
[/code]


CC BY-SA 3.0
2017-06-19T08:13:58.413
35709
2017-10-04T04:07:32.010
2017-07-27T12:57:16.207
19110
23890
question
python3 excel
python3でのエクセルデータ読み書き


さしあたって下記のように書き換えれば、要望として出されている課題は達成できそうです。

おそらく質問の意図は「手軽かつ柔軟に既存のシートを上書きしたい」ということだと思いますが、pythonからのExcel出力は詳しくないので、有効なアドバイスを追記することができません。

[code]

    # -*- coding: utf-8 -*-
    
    import xlrd
    import xlwt
    #エクセル読込
    reader = xlrd.open_workbook('j.xls') 
    r_sheet = reader.sheet_by_index(0)
    #書込用シート作成
    writer = xlwt.Workbook()
    w_sheet = writer.add_sheet(r_sheet.name) #上書き保存するため、読込シートと同名
    for row in range(r_sheet.nrows):
        w_sheet.write(row, 0, r_sheet.cell(row, 0).value) #既存の値をコピー
        if r_sheet.cell(row, 0).value >= 10:
            w_sheet.write(row, 1, '10以上')
        else:
            w_sheet.write(row, 1, '10未満')
    writer.save('j.xls') #上書き保存
    
[/code]


CC BY-SA 3.0
2017-06-19T11:36:38.653
35717
2017-06-19T11:36:38.653
9820
35709
answer