前回の投稿 027 Excelファイルから測定機器をコントロールするデータを読み込むで,openpyxlパッケージを使ってExcelファイルを読み込む時の注意点に関して紹介しました.
今回は,実際に,openpyxlパッケージを使ってExcelファイルを読み込むPythonスクリプトの紹介を行います.
openpyxlパッケージを使ってExcelファイルを読み込む手順は,下記のようになります.
- load_workbook関数を使ってExcelファイルをオープンします(ワークブックを取得します)
- ワークシート名を指定して所望のワークシートを開くか,ワークブック内の全てのワークシート名を取得して個別にワークシートを開きます
- iter_rows関数を使って行(Row)毎にデータを取得します(取得するセルの行および列の範囲も指定できます)
- 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]
ワークブックに関する各種属性などは,ワークブックの仕様をご覧下さい.
0 件のコメント:
コメントを投稿