Pythonのopenpyxl
ライブラリは、Excelファイルの読み書きを行うための強力なツールです。特にdata_only=True
パラメータは、Excelのセルに含まれる数式の結果を取得する際に非常に便利です。
data_onlyパラメータとは
openpyxl.load_workbook
関数のdata_only
パラメータをTrue
に設定すると、数式そのものではなく、数式の計算結果を取得することができます。これは、Excelファイル内の大量の数式を評価した結果を取得する必要がある場合に特に有用です。
しかし、注意点として、data_only=True
で読み込んだ後にそのまま保存すると、元の数式が消えてしまう可能性があります。そのため、数式を保持したまま別のブックに転記するなどの対策が必要です。
実践的な使用例
以下に、openpyxl
とdata_only=True
パラメータを使用してExcelファイルからデータを読み込むPythonスクリプトの例を示します。
from pathlib import Path
from openpyxl import load_workbook, Workbook
wb_new = Workbook()
ws_new = wb_new.active
ws_new.title = '台帳'
ws_new.column_dimensions['A'].width = 20
path = Path('../地区別平均時給')
for i, file in enumerate(path.glob('*.xlsx')):
wb = load_workbook(file, data_only=True)
ws = wb['チェックリスト']
row_no = i + 1
ws_new.cell(row_no, 1).value = ws['D23'].value
ws_new.cell(row_no, 2).value = ws['L23'].value
ws_new.cell(row_no, 2).number_format = ws['L23'].number_format
wb_new.save('平均時給一覧.xlsx')
このスクリプトは、指定したディレクトリ内のすべてのExcelファイルを読み込み、各ファイルの特定のセルの値を新しいExcelファイルに書き出します。このように、openpyxl
とdata_only=True
パラメータを活用することで、Pythonを使って効率的にExcelデータを操作することが可能です。