2017-02-21 13 views
1

助けてください、よろしくお願いします!シンプルな作業のようです - 特定のスプレッドシートのセルから値を取り出し、それらを合計する必要があります。しかし、私は最初のステップでさえ失敗しました。最初は、私はモジュールで間違っていると思っていました(openpyxlは定期的にアップグレードされていましたが、何か見逃してしまいました)が、xlrdモジュールでも同じ結果が得られました!ここでは、コードは次のとおりxlrd&openpyxl間違ったセル値を取得する(Excel)

import xlrd, xlwt 
wb = xlrd.open_workbook(r"E:\Projects_working (11).xlsx") 
sheet = wb.sheet_by_name('Language Process') 
for i in range(1, 100): 
    cellVal = sheet.cell(i, 14).value #need to find "5" in column 14 
     if type(cellVal) == float and cellVal == 5.0: #need to read corresp. 
      print(sheet.cell(i, 11).value)   #values в column 11 

結果、代わりに整数(例えば、22)の、コードは、フロート42782.61458で終わります。 (他の値は類似しており、間違っている:など、42782.66146 42781.38542、42781.42708)

はOrignially Iはopenpyxlモジュールを使用し、loadedeブックにDATA_ONLY = trueフラグを追加した:WB = load_workbook( "file.xlsx"、 data_only = True)。そのコードでも同じ結果が得られます。 = B32 +((M32-B32)/ 2)、= B41 +((M41-B41)/ 2)などです。これらの式のコードはありません(フラグなし)。

import openpyxl 
wb = openpyxl.load_workbook(r"E:\Projects_working (11).xlsx") 
sheet = wb.get_sheet_by_name('Language Process') 
for i in range(1, 100): 
    cellVal = sheet.cell(row=i, column=14).value 
     if type(cellVal) == float and cellVal == 5.0: 
      print(sheet.cell(row=i, column=11).value) 

そしてここでは念のために、ファイルへのリンクです:https://docs.google.com/spreadsheets/d/1bFhkEs8JTVWCgZoW5_9lQ1q_T0gtijBhuywr6OVpfGc/edit?usp=sharing

答えて

0

あなたは生のdatetime値のExcelのバージョンのような表情を読んでいるデータ。あなたはおそらく列を誤って(つまり、間違った列のインデックスを与えられている)。

+0

ジョン、あなたは素晴らしいです!高すぎる、男! (間違いなく、私はいくつかのトリッキーな理由を探していましたが、間違いは見逃せませんでした!) –

関連する問題