0
2

More than 3 years have passed since last update.

【Python】読込むブック名とセルの値をパラメーターにする。④

Posted at

pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、パラメーターに関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。

後々レイアウトを変更したり、プログラムで読み込むブック名やセルの値を変えてしまうかもしれない時の対処法です。
なんだかちょっと実戦形式っぽくてワクワクしてます。

今回はこちらのブック「日報.xlsx」を、使用します。
image.png

configparserモジュール

事前に設定ファイルにパラメーターを記述しておき、後から呼び出す方法です。

私はVScodeを使って作成しています。ファイルの文字コードは「UTF=8」です。

sample.ini
[DEFAULT]
filename = 日報.xlsx
cellno = I1

「DEFAULT」はパラメーターの大まかな分類を表します。(セクションと呼ぶそうです。)
上記のように「=」や「:」で区切った形式で記述します。
設定ファイルに記述できる形式など、詳しくは下記をご確認ください。
https://docs.python.org/ja/3/library/configparser.html#supported-ini-file-structure

先ずは configparser.ConfigParserオブジェクトを生成します。

config = configparser.ConfigParser()

お次に、設定ファイルを読み込むためにConfigParser.readメソッドを使います。

config.read(設定を記述したファイル名, encoding=使用する文字コード)

設定ファイル内の値は以下の書式で取得できます。

config[セクション名][引数名]

これらを踏まえて

config_arguments.py
import configparser
from openpyxl import load_workbook

config = configparser.ConfigParser()
config.read('sample.ini', encoding='utf-8')

default = config['DEFAULT']
filename = default['filename']
cellno = default['cellno']

wb = load_workbook(filename, read_only=True)
ws = wb.active

print(ws[cellno].value)

個人的にはinputの次にしっくりきました。
いちいちプログラム実行のたびに入力しなくても済むのが大きな理由です。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2