0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】Worksheet.〇〇_dimensionsで非表示を解除

Posted at

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

image.png

上記のような非表示状態にしている列を一括解除することが目標です。

Worksheet.〇〇_dimensions

# 行の非表示解除
ws.row_dimensions[行番号].hidden = False

# 列の非表示解除
ws.column_dimensions[列名].hidden = False

こちらで行と列それぞれ非表示を解除できます。
ちなみに、非表示にしたい場合は「False」を「True」に変更します。

次に立ちはだかってくる問題が「列名」です・・・。

Cell.column_letter属性

cell.column_letter

セルの列名ってアルファベットなのですよね。
しかも、「Z」の次は「AA」、「AB」・・・と続きます。
なのでこちらでアルファベット名を取得します。

Worksheet.max_column属性

最後にデータが入力されている最大の列まで非表示解除の処理を行いたいので

ws.max_column

こちらで取得します。
今回は、列だけだったのですが他にも

  • ws.max_row:データが入力されている最大の行
  • ws.min_row:データが入力されている最小の行
  • ws.max_column:データが入力されている最大の列
  • ws.min_column:データが入力されている最小の列

こちらがありました。どちらも、使用頻度高そうです!

こちらをふまえて、こうなりました!

column_hidden.py
from openpyxl import load_workbook

wb = load_workbook('〇〇地区時給計算.xlsx')
ws = wb.active

# 行の非表示を解除
# for row_no in range(2, ws.max_row + 1):
#     ws.row_dimensions[rouw_no].hidden = False

# 列の非表示を解除
for col_no in range(2, ws.max_column + 1):
    # セルの列名を取得
    col_alphabet = ws.cell(row=1, column=col_no).column_letter
    ws.column_dimensions[col_alphabet].hidden = False

wb.save('〇〇地区時給計算_変更後.xlsx')

余談:非表示とグループ化

念のため列「D~E」は非表示、列「G~J」はグループ化として隠している状態でしたが
どちらも解除されていました。

一部の行や列を隠したい時には
「非表示」か「グループ化」のどちらかを使用すると思うのですが
個人的には「グループ化」をおすすめします。

一番の理由は隠しているところが解りやすいから。

非表示だと目立たなくて気づかなかったり、再度隠したい時に隠す場所を忘れていたりするので。
いずれにしても、今回の機能はほぼ出番はないかなといった感じですね。

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?