0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでExcelの行、列、セルをロックする

Posted at

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の指定したセル、行、列をロックすることができます。エクセルの文書処理機能については、こちらをご覧ください:

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?