028 Excelファイルから測定機器をコントロールするデータを読み込む(その2)

2022/04/04

紹介/スクリプト

t f B! P L

前回の投稿 027 Excelファイルから測定機器をコントロールするデータを読み込むで,openpyxlパッケージを使ってExcelファイルを読み込む時の注意点に関して紹介しました.
今回は,実際に,openpyxlパッケージを使ってExcelファイルを読み込むPythonスクリプトの紹介を行います.

openpyxlパッケージを使ってExcelファイルを読み込む手順は,下記のようになります.

  1. load_workbook関数を使ってExcelファイルをオープンします(ワークブックを取得します)
  2. ワークシート名を指定して所望のワークシートを開くか,ワークブック内の全てのワークシート名を取得して個別にワークシートを開きます
  3. iter_rows関数を使って行(Row)毎にデータを取得します(取得するセルの行および列の範囲も指定できます)
  4. close関数を使ってオープンしていたExcelファイルをクローズします

既に紹介したように,セル毎にデータを取得することも可能ですが,iter_rows関数を使って行(Row)毎にデータを取得する方が処理時間が短くて済みますので,できるだけ,iter_rows関数を使って行(Row)毎にデータを取得するようにしてみて下さい.
(もちろん,シートの中の一部のセルのデータのみ必要な場合は,セル毎にデータを取得しても構いません)

iter_rows関数は重要なので次回の投稿で詳しく説明するとして,今回は,上記の1と2に関して紹介します.
読み込むExcelファイル
    ファイル名: 「データ.xlsx」
    シート名: 「データシート1」
として,ワークブック(wb)とワークシート(ws)を開きます.
    import opnepyxl as xl

    wb = xl.load_workbook("データ.xlsx", read_only=True, data_only=True)
    ws = wb["データシート1"]

まず,load_workbook関数ですが,

  • read_onlyキーワード引数にTrue(シートからデータの読み込みのみ行う)
  • data_onlyキーワード引数にTrue(計算式も数値として読み込む)

を設定しています.
それぞれ,ワークブックからデータを読み込みに制限をかけることで,データ読み込み処理を短くします.
data_onlyキーワード引数Trueにするのは,セルに計算式が定義されているケースでも,計算式としてではなく,計算結果を数値としてデータを読み込むために必要です.

ワークシートは,ワークブックの変数wbにワークシート名を入れることで開くことができます.
ちなみに,
    sheetnames = wb.sheetnames
とすれば,全てのワークシート名がリストとして取得できますし,特定のワークシートを開くには,ワークシート名を指定する以外にも,下記に示すように,インデックス(0から始まる)で指定することもできます.
    ws = wb.worksheets[0]

ワークブックに関する各種属性などは,ワークブックの仕様をご覧下さい.

このブログを検索

アーカイブ

自己紹介

C++やC#を使って数値解析プログラムの開発を長年行ってきました.
今は,Pythonを使った自動処理システムの開発をメインに行っています.

QooQ