027 Excelファイルから測定機器をコントロールするデータを読み込む

2022/04/03

その他/雑談

t f B! P L

前回の投稿 026 PyVISAとExcelファイルで測定機器をコントロールするで,openpyxllxmlの2個のパッケージを使って,Excelファイルを読み書きできることを紹介しました.
今回から数回に渡って,Excelファイルから,測定機器をコントロールするデータを読み込む方法を紹介します.
(投稿の目的は測定機器のコントールですが,純粋にPythonでExcelファイルのデータを読み込むことにも利用できます)

まず注意しておくことは,
    「Excelファイルからデータを読み込む回数を(できるだけ)減らすようにしましょう」
ということです.
これは何を言っているかというと,Excelファイルセル毎にデータを読み込むのではなく,行(Row)毎のデータを読み込みましょうということです.これだと,Excelファイルからデータを読み込むopenpyxlパッケージの関数は,データの行数分だけ実行すれば済みます.

なぜなら,openpyxlパッケージを使えば,Excelファイルからデータを読み込むことはできるのですが,処理時間は(例えばcsvファイルのようなテキストファイルからデータを読み込むのに比べて)かなり遅くなってしまうためです.

もちろん,数十個程度の設定項目のデータをExcelファイルから読み込むのなら,たとえセル毎にデータを読み込んでも問題ありませんが,数百~数千個の波形データを複数個読み込むケースなどでは,処理時間の長さが目立ってきます.

Excelファイルからデータを読み込むのはまだしも,Excelファイルのデータを書き込むのは,さらに大幅に処理時間が長くなってしまうので,openpyxlパッケージを使う時は,Excelファイル行(Row)毎にデータを読み書きするよう癖をつけた方が賢明です.

また,openpyxlパッケージを使えば,Excelファイルからデータを読み込み,さらに,そのExcelファイルにデータを書き込むこと(データの修正/追加)も可能なのですが,処理が複雑になるのと,処理時間が長くなってしまうため,

  • Excelファイルからデータを読み込むだけ
  • 新規のExcelファイルとしてデータを作成

することに限定した方が良いと思います(経験則).

過去に,Excelファイルセル毎にデータを読み書きするPythonスクリプトを作成して動作検証し,実際のデータを使って処理しようとしたところ,あまりの処理時間の長さに呆然としたことがあります.
色々,調べて見ると,

  • 複雑なことはしない
  • 行(Row)毎にデータを読み書きする

と限定することで,(大幅とまではいきませんが)それなりに短時間で処理できるようになりました.

今回の投稿は,経験則からの雑談になってしまいましたので,次の投稿から,openpyxlパッケージを使って,Excelファイルから行(Row)毎にデータを読み込む方法を紹介したいと思います.

このブログを検索

アーカイブ

自己紹介

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

QooQ