Excelドキュメントを操作していると、特定のデータが誤って変更されないようにする必要が出てくることがあります。そこで、Excelのセルをロックする機能が特に重要になります。この記事では、Pythonを使ってExcelのセルをロックし、データをより適切に管理・保護する方法を紹介する。
Python Excelライブラリ
Excelファイルを処理するために、Spire.XLS for Pythonライブラリを使用する必要があります。以下のpipコマンドで直接インストールできます:
pip install Spire.XLS
Pythonで指定したセルをロックする
Spire.XLS for Pythonを使用すると、まず Worksheet.Range[]
プロパティで指定したセルやセル範囲を取得し、CellRange.Style.Locked
プロパティを 「True」に設定してセルをロックすることができます。
Pythonコード:
from spire.xls import *
from spire.xls.common import *
# Excelファイルを読み込む
workbook = Workbook()
workbook.LoadFromFile("input.xlsx")
# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]
# ワークシートの使用範囲のすべてのセルのロックを解除する
sheet.Range.Style.Locked = False
# ワークシート内の特定のセルまたはセル範囲をロックする
sheet.Range["A1"].Style.Locked = True
sheet.Range["C2:F6"].Style.Locked = True
# ワークシートをパスワードで保護する
sheet.Protect("123456", SheetProtectionType.All)
# 結果ファイルの保存
workbook.SaveToFile("LockExcelCells.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
Pythonで指定した行をロックする
Worksheet.Rows[]
メソッドでワークシートの指定行を取得し、その行をロックすることもできます。
Pythonコード:
from spire.xls import *
from spire.xls.common import *
# Excelファイルを読み込む
workbook = Workbook()
workbook.LoadFromFile("input.xlsx")
# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]
# ワークシートの使用範囲のすべてのセルのロックを解除する
sheet.Range.Style.Locked = False
# ワークシートの2行目をロックする
sheet.Rows[1].Style.Locked = True
# ワークシートをパスワードで保護する
sheet.Protect("123456", SheetProtectionType.All)
# 結果ファイルの保存
workbook.SaveToFile("LockExcelRow.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
Pythonで指定した列をロックする
指定した列は Worksheet.Columns[0]
プロパティで取得でき、その列をロックすることができます。
Pythonコード:
from spire.xls import *
from spire.xls.common import *
# Excelファイルを読み込む
workbook = Workbook()
workbook.LoadFromFile("input.xlsx")
# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]
# ワークシートの使用範囲のすべてのセルのロックを解除する
sheet.Range.Style.Locked = False
# ワークシートの最初の列をロックする
sheet.Columns[0].Style.Locked = True
# ワークシートをパスワードで保護する
sheet.Protect("123456", SheetProtectionType.All)
# 結果ファイルの保存
workbook.SaveToFile("LockExcelColumn.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
注: デフォルトでは、ワークシート内のすべてのセルに対してロック・オプションが有効になっています。したがって、特定のセルをロックする前に、すべてのセルのロックを解除する必要があります。セルのロックは、ワークシートが暗号化されるまで有効になりませんのでご注意ください。
上記の3つのコード例を通して、Pythonを使ってExcelの指定したセル、行、列をロックすることができます。エクセルの文書処理機能については、こちらをご覧ください: