Python(openpyxl) 非表示・再表示まとめ(シート・行・列)

Python

Python(openpyxl)で、Excelのシート・行・列を非表示・再表示する方法をまとめました。用途に合わせた操作方法をコード付きでご紹介します。

ぜひ、お試しください。

行を非表示にする 4選

行を非表示にする(指定行)

以下のコードを実行すると、指定行を非表示にします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

#行を非表示
ws.row_dimensions[3].hidden= True

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test行非表示.xlsx')

 

Excelシート内の指定行を非表示にします。

「ws.row_dimensions[3].hidden= True」 は、3行目を非表示にします。


 
 

行を非表示にする(指定行)

以下のコードを実行すると、指定行を非表示にします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

# 行をループ
for row in ws.iter_rows():
    for cell in row:
        if cell.row == 3:
            ws.row_dimensions[cell.row].hidden= True

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test行非表示.xlsx')

 

Excelシート内の指定行を非表示にします。

「ws.row_dimensions[cell.row].hidden= True」 は、3行目を非表示にします。


 
 

行を非表示にする(複数行)

以下のコードを実行すると、複数行を非表示にします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

#行を非表示
for myrow in [3, 5, 7]:
    ws.row_dimensions[myrow].hidden= True

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test行非表示.xlsx')

 

Excelシート内の複数行を非表示にします。

「for myrow in [3, 5, 7]:」 は、3行目・5行目・7行目を指定しています。


 
 

行を非表示にする(指定行から最終行まで)

以下のコードを実行すると、特定行から最終行まで非表示にします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

# 行をループ
for row in ws.iter_rows():
    for cell in row:
        if cell.row >= 8:
            ws.row_dimensions[cell.row].hidden= True

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/行非表示.xlsx')

 

Excelシート内の複数行を非表示にします。

IF文を使って、8行目以上を非表示にします。


 
 

列を非表示にする 2選

列を非表示にする(指定列)

以下のコードを実行すると、指定列を非表示にします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

#列を非表示
ws.column_dimensions['C'].hidden= True

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test列非表示.xlsx')

 
Excelシート内の指定列を自動で非表示にしました。

[ws.column_dimensions[‘C’].hidden= True] は、C列を非表示にします。


 
 

列を非表示にする(複数列)

以下のコードを実行すると、複数列を非表示にします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

#列を非表示
for mycol in ['C', 'E']:
    ws.column_dimensions[mycol].hidden= True

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test列非表示.xlsx')

 
Excelシート内の複数列を自動で非表示にしました。

[for mycol in [‘C’, ‘E’]:] は、C列・E列を指定しています。


 
 

エクセルシート再表示 4選

エクセルシート再表示(特定のシート)

以下のコードを実行すると、特定シートを再表示します。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet3']

#シートを再表示する
ws.sheet_state = 'visible'

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート再表示.xlsx')

 

Excelファイル内の特定シートを再表示します。


 
 

エクセルシート再表示(特定のシート)

以下のコードを実行すると、特定シートが非表示だったら再表示にします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')

for ws in wb.worksheets:

    if ws.title == 'Sheet3':

        #もしシートが非表示だったら再表示にする
        if ws.sheet_state == 'hidden':
            ws.sheet_state = 'visible'
        break

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート再表示.xlsx')

 

Excelファイル内の特定シートが非表示だったら再表示します。


 
 

エクセルシート再表示(一番右のシート)

以下のコードを実行すると、右端のシートを再表示します。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb.worksheets[-1]

#シートを再表示にする
ws.sheet_state = 'visible'

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート再表示.xlsx')

 

Excelファイル内の一番右にあるシートを再表示します。

[ws = wb.worksheets[-1]] は、”一番右のシート” を指定しています。


 
 

エクセルシート再表示(一括再表示)

以下のコードを実行すると、非表示シートをまとめて再表示します。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')

for ws in wb.worksheets:

    #もしシートが非表示だったら再表示にする
    if ws.sheet_state == 'hidden':
        ws.sheet_state = 'visible'

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート再表示.xlsx')

 

ファイル内のすべてのシートをループして、非表示シートをすべて再表示します。


 
 

エクセルシート非表示 3選

エクセルシート非表示(特定のシート)

以下のコードを実行すると、特定シートを隠します。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

#シートを非表示にする
ws.sheet_state = 'hidden'

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート非表示.xlsx')

 

Excelファイル内の特定シートを非表示にしました。


 
 

エクセルシート非表示(一番右のシート)

以下のコードを実行すると、右端のシートを非表示にします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb.worksheets[-1]

#シートを非表示にする
ws.sheet_state = 'hidden'

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート非表示.xlsx')

 

Excelファイル内の一番右にあるシートを非表示にしました。

[ws = wb.worksheets[-1]] は、”一番右のシート” を指定しています。


 
 

エクセルシート非表示(特定シート以外)

以下のコードを実行すると、特定シート以外を非表示にします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')

#ファイル内のシートをループ
for ws in wb.worksheets:

    if ws.title !='Sheet2':

        #シートを非表示にする
        ws.sheet_state = 'hidden'

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testシート非表示.xlsx')

 

Excelファイル内の特定シート以外を非表示にしました。

「Sheet2」を残して、それ以外のシートを非表示にします。


 
 

この記事がお役に立ちますと幸いです。
 
・【Python】エクセルを自動処理する方法まとめ
 

【Python】エクセル処理を自動化:超便利55選
Pythonで、Excel処理を自動化するコードをご紹介します。ぜひお試しください!

 

「Python 1年生 体験してわかる!会話でまなべる!」

初めての方でも安心して取り組めるように丁寧に解説
簡単なサンプルを作りながら、対話形式でプログラミングまで紹介
人工知能の導入としてもオススメの1冊です!