Microsoft Excelはスプレッドシートアプリケーションながら、日本では体裁の整った文書を作成するためのアプリケーションとしても人気がある。こうしたケースではセルのサイズを巧みに調整することがポイントになる。そこで、今回はPythonからセルのサイズを変更する方法を取り上げる。

連載「PythonでExcel作業の効率化を図ろう」のこれまでの回はこちらを参照

Excelのセルの縦横サイズを操る

Microsoft Excelはスプレッドシートアプリケーションであり、表計算や数値計算が本来の目的だ。しかしながら、日本ではMicrosoft Excelは体裁の整った文書を作成するためのアプリケーションとしても使われている。セルサイズの調整を駆使すると緻密に文章を配置でき、思っている通りのデザインで資料を作成しやすい。

事務処理では定例化されたドキュメントを使うことが多いので、作成済みのMicrosoft Excelファイルをベースにデータの書き換えやちょっとした装飾の変更ができればよい。このため、セルのサイズ変更はあまり発生しない作業だが、できるに越したことはない。

1ページに押し込めるデータ数などによってはセルの縦や横のサイズを変更する必要があることも出てくるし、テンプレートなしでPythonから直接Microsoft Excelファイルを生成する必要がある場合なんかにはこうした調整を行う必要がある。

PythonのOpenPyXLライブラリーを使うとこうした変更も自由にできる。今回はこうした使い方を取り上げる。

OpenPyXLの生成するデフォルトのExcelデータ

まず、PythonのOpenPyXLライブラリを使って何も編集をせずに空のMicrosoft Excelデータを生成して、どのようなデータが生成されるのかを確認する。次のようなスクリプトで空のMicrosoft Excelファイル「サンプルファイル.xlsx」が生成される。

openpyxl_sample_cell_1.py

import openpyxl

#=========================================================================
# 保存するファイルのパス
#=========================================================================
output_xlsx_file_path = 'サンプルファイル.xlsx'

#=========================================================================
# Microsoft Exce データの生成とワークシートの取得
#=========================================================================
# 新規ワークブックの作成
wb = openpyxl.Workbook()

# アクティブワークシートの取得
ws = wb.active

#=========================================================================
# Microsoft Exce データの生成とワークシートの取得
#=========================================================================
# 何も編集せず

#=========================================================================
# 生成したMicrosoft Excelデータをファイルへ保存
#=========================================================================
wb.save(output_xlsx_file_path
  • 編集および実行のようす

openpyxl_sample_cell_1.pyを実行すると次のようなMicrosoft Excelファイルが生成される。

  • 生成されたMicrosoft Excelファイル

Microsoft Excelから新規でファイルを作成したときに生成されるシートと同じだ。