2017-01-18 29 views
-1

私は高低を検索しており、答えを見つけることができません。Excelのスプレッドシートの生年月日から年齢を検索

状況:私は列Dに生年月日を含むスプレッドシートを持っています。各人の年齢を計算し、その年齢を列Eに入れたいと思います。スプレッドシート全体でこれを行うことができます。私はそのコードブロックを実行しようとすると、私は「のでdatetime.datetime.strptimeコール

コードを参照する

`AttributeError: 'tuple' object has no attribute 'value' 

は、この時点ではかなり厄介で取得

import openpyxl as op 
import datetime 

for row in range(2, ws.max_row + 1): 
    ws["D"] = ws["D" + str(row)].value 
    born = datetime.datetime.strptime(ws["D"], "%m/%d/%y") 
    ws["E" + str(row)].value = today.year - born.year - ((today.month, today.day) < (born.month, born.day)) 

いろいろなことを試してみると、うまく動作しません。

+0

これにはPythonを使用する理由はありますか? Excelで '(NOW() - )/ 365'をもっと簡単に行うことができます。 – gobrewers14

+0

はい。これは、私が可能な限り自動化しようとしている長いプロセスの一歩です。 – Tkelly

答えて

2

あなたが間違っていたことは、wの種類をws["D"] = ws["D" + str(row)].valueに変更したことです。 できることは次のとおりです。

import openpyxl as op 
import datetime 

for row in range(2, ws.max_row + 1): 
    wsx["D"] = ws["D" + str(row)].value 
    born = datetime.datetime.strptime(wsx["D"], "%m/%d/%y") 
    ws["E" + str(row)].value = today.year - born.year - ((today.month, today.day) < (born.month, born.day)) 

希望します。

+0

あなたの提案をありがとう。しかし、プログラムを実行しているとき: 'wsx [" D "] = ws [" D "+ str(行)]の値 は' NameError:name 'wsx'が定義されていません – Tkelly

関連する問題