web-dev-qa-db-ja.com

pythonのopenpyxlモジュールを使用してセルの実際の値にアクセスする方法

Cell.value関数がセルに使用される式を返すため、これで実際に問題が発生し、操作後にExcelが提供する結果を抽出する必要があります。

ありがとうございました。


さて、私はそれを回避する方法を見つけたと思います。 cell.internal値にアクセスするには、ワークシートでiter_rows()を使用する必要があります。これは「RawCell」のリストです。

for row in ws.iter_rows():

    for cell in row:

        print cell.internal_value
35
user3455972

チャーリー・クラークがすでに提案したように、data_only on True onワークブックをロードするとき:

from openpyxl import load_workbook

wb = load_workbook("file.xlsx", data_only=True)
sh = wb["Sheet_name"]
print(sh["x10"].value)

幸運を :)

68
Iulian Stana

コードから、最適化されたリーダーread_only=Trueを使用しているように見えます。ブックを開くときにdata_only=Trueフラグを使用して、式とその結果の抽出を切り替えることができます。

internal_valueは、Excelが使用する(型なし)値のみを参照するために使用されるプライベート属性でした。 Pythonの形式ではなく、1900年のエポックの数字。この質問が最初に尋ねられてから、ライブラリから削除されました。

26
Charlie Clark

次のコードを試すことができます。Excelファイルのパスと、下のコードの行番号と列番号で必要な値のセルの場所を指定するだけです。

    from openpyxl import Workbook
    wb = Workbook()
    Dest_filename = 'Excel_file_path'
    ws=wb.active
    print(ws.cell(row=row_number, column=column_number).value)
6
Rohit Gawas

代わりにcell.internal_valueを使用してみてください。

4
Vitaly Isaev