Pythonを使ってExcelを操作するための強力なライブラリである「xlwings」は、Excelの自動化に非常に役立ちます。日常的にExcelを使う人にとって、行や列の幅を自動で調整する機能は欠かせないものです。
この記事では、Pythonとxlwingsを使って、行や列の幅を簡単に調整する方法について詳しく解説します。
xlwingsのセットアップ
xlwingsのインストールや基本操作は以下の記事から見てみてください!
基本的なExcel操作
ここでは、画像のような「都道府県情報.xlsx」というファイルを用意し、このファイルに手を加えていくことにします!
Excelファイルを読み込む
import xlwings as xw
# Excelアプリケーションを起動
app = xw.App(visible=False)
# 新規ブックを作成
wb = app.books.open('都道府県情報.xlsx')
# シートを取得
sheet = wb.sheets['都道府県一覧']
##ここに行・列の調整のコードを書いていきます
# 保存
wb.save("都道府県情報.xlsx")
# ワークブックのクローズ
wb.close()
app.quit()
早速やっていこう!
行・列の幅を調整する
ここでは幅を指定して、行と列を調整する方法をご紹介します!
行の幅を設定する
Excelの行の高さをPythonで設定する方法は、Rows オブジェクトに対して row_height プロパティを使用することで行います。以下は、特定の行の高さを変更する例です。
import xlwings as xw
# Excelアプリケーションを起動
app = xw.App(visible=False)
# 新規ブックを作成
wb = app.books.open('都道府県情報.xlsx')
# シートを取得
sheet = wb.sheets['都道府県一覧']
# 2行目の高さを30に設定
sheet.range('2:2').row_height = 30
# 保存
wb.save("都道府県情報.xlsx")
# ワークブックのクローズ
wb.close()
app.quit()
2行目だけ行の幅が大きくなったのがわかるね!
row_height プロパティはピクセル単位で高さを指定します!指定した数値がそのままExcelで反映され、行の高さを調整します!
列の幅を設定する
同様に、列の幅を変更するには column_width プロパティを使用します。以下の例では、B列の幅を50に設定しています。
import xlwings as xw
# Excelアプリケーションを起動
app = xw.App(visible=False)
# 新規ブックを作成
wb = app.books.open('都道府県情報.xlsx')
# シートを取得
sheet = wb.sheets['都道府県一覧']
# B列の幅を50に設定
sheet.range('B:B').column_width = 50
# 保存
wb.save("都道府県情報.xlsx")
# ワークブックのクローズ
wb.close()
app.quit()
column_width もピクセル単位で、指定された数値がExcelでの列幅として反映されます。
幅を自動調整する方法
Excelには「自動調整」機能があります。これは、セルに入力されているデータに基づいて自動的に行や列の幅を最適なサイズに調整する機能です。xlwings でもこの自動調整機能を使うことができます。
Excel上ではダブルクリックでできるやつだね!
下のようにいったん行列の幅を大きくしてみたよ!
行の自動調整
行の高さを自動で調整したい場合、AutoFit メソッドを使用します。これは、セルの内容に基づいて高さを自動調整します
import xlwings as xw
# Excelアプリケーションを起動
app = xw.App(visible=False)
# 新規ブックを作成
wb = app.books.open('都道府県情報.xlsx')
# シートを取得
sheet = wb.sheets['都道府県一覧']
# 2行目の高さを自動調整
sheet.range('2:2').rows.autofit()
# 保存
wb.save("都道府県情報.xlsx")
# ワークブックのクローズ
wb.close()
app.quit()
指定した行のみ自動調整されたことがわかるね!
列の自動調整
import xlwings as xw
# Excelアプリケーションを起動
app = xw.App(visible=False)
# 新規ブックを作成
wb = app.books.open('都道府県情報.xlsx')
# シートを取得
sheet = wb.sheets['都道府県一覧']
# 1列目の高さを自動調整
sheet.range('A:A').columns.autofit()
# 保存
wb.save("都道府県情報.xlsx")
# ワークブックのクローズ
wb.close()
app.quit()
これで部分的な調整はOK!
でも、一気にしたいときは…次へ!
特定範囲の行や列の幅を設定する
import xlwings as xw
# Excelアプリケーションを起動
app = xw.App(visible=False)
# 新規ブックを作成
wb = app.books.open('都道府県情報.xlsx')
# シートを取得
sheet = wb.sheets['都道府県一覧']
# A~F列目の高さと幅を自動調整
sheet.range('A:F').autofit() # rangeから直接autofit()を呼べば、高さも幅も自動調節出来る!
# 保存
wb.save("都道府県情報.xlsx")
# ワークブックのクローズ
wb.close()
app.quit()
今回のコードをつかえば「A~F列に含まれるセルの高さと幅をすべて自動調節」することが可能です!環境に合わせて、修正して使ってみてね!
まとめ
この記事では、xlwings を使ってPythonで行と列の幅を調整する方法について解説しました。行や列の幅を手動で設定する方法や、自動調整の使い方を学んだことで、Excelの操作をさらに効率的に行えるようになったのではないでしょうか。xlwings は非常に強力で、他にも多くの機能が備わっていますので、今後も様々な操作を自動化するために利用してみてください。
コメント