助けてください、よろしくお願いします!シンプルな作業のようです - 特定のスプレッドシートのセルから値を取り出し、それらを合計する必要があります。しかし、私は最初のステップでさえ失敗しました。最初は、私はモジュールで間違っていると思っていました(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
ジョン、あなたは素晴らしいです!高すぎる、男! (間違いなく、私はいくつかのトリッキーな理由を探していましたが、間違いは見逃せませんでした!) –