Excelワークブックは広く使用されているデータ管理ツールであり、Pythonと組み合わせることで大量データの自動処理が可能になります。Pythonを使用してExcelセルの値を設定、更新、および取得することで、作業効率を大幅に向上させ、手作業の繰り返しを減らすだけでなく、データ処理の柔軟性と拡張性を強化し、より多くの価値を生み出すことができます。この方法の活用範囲は、財務報告の自動化からデータ分析レポートの生成まで多岐にわたり、さまざまな業務で効率を大幅に向上させることができます。本記事ではPythonを使用してExcelファイル内のセルの値を設定、更新、および取得する方法を紹介します。
この記事で使用する方法には、Spire.XLS for Pythonが必要です。PyPIからインストールできます:pip install spire.xls
。
PythonでExcelセルの値を設定する
ライブラリ内のWorksheet.Range.get_Item()
メソッドを使用して、Excelワークシート内の指定セルをCellRange
オブジェクトとして取得します。例えば、Range.get_Item(2, 1)
やRange.get_Item("A2")
(2行目1列目)で指定できます。その後、CellRange.Value
プロパティを使用してセルの値を設定するほか、テキスト、数値、ブール値など他の値を設定できます。また、CellRange
クラスにあるフォーマット設定用のプロパティを使用してセルの書式も設定できます。操作手順の例は以下のとおりです:
- 必要なモジュールをインポートする:
Workbook
、FileFormat
、DateTime
、HorizontalAlignType
。 -
Workbook
オブジェクトを作成する。 -
Workbook.Worksheets.Clear()
メソッドでデフォルトのワークシートをクリアし、Workbook.Worksheets.Add(sheetName: str)
メソッドで新しいワークシートを追加する。 -
Worksheet.Range.get_Item()
メソッドを使って指定セルをCellRange
オブジェクトとして取得する。 -
Text
、Value
、DataTimeValue
、Formula
、NumberValue
などのプロパティでセルの値を設定する。 - セルの書式を設定する。
-
Workbook.SaveToFile()
メソッドでワークブックを保存する。 - リソースを解放する。
コード例
from spire.xls import Workbook, FileFormat, DateTime, HorizontalAlignType
import datetime
# Workbookのインスタンスを作成してExcelワークブックを作成
workbook = Workbook()
# デフォルトのワークシートをクリアし、新しいワークシートを追加
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("Sheet1")
# セルを取得し、テキストを設定
cell = sheet.Range.get_Item(2, 2)
cell.Text = "テキスト例"
# セルを取得し、通常の値を設定
cell1 = sheet.Range.get_Item(3, 2)
cell1.Value = "$123456"
# セルを取得し、日付値を設定
cell2 = sheet.Range.get_Item(4, 2)
cell2.DateTimeValue = DateTime.get_Now()
# セルを取得し、ブール値を設定
cell3 = sheet.Range.get_Item(5, 2)
cell3.BooleanValue = True
# セルを取得し、数式を設定
cell4 = sheet.Range.get_Item(6, 2)
cell4.Formula = "=SUM(B7)"
# セルを取得し、数値を設定し、数値フォーマットを設定
cell5 = sheet.Range.get_Item(7, 2)
cell5.NumberValue = 123456
cell5.NumberFormat = "#,##0.00"
# セルを取得し、数式配列を設定
cell6 = sheet.Range.get_Item(8, 2)
cell6.HtmlString = "<p><span style='color: blue; font-size: 18px;'>青色フォント18ピクセルサイズ</span></p>"
# フォーマットを設定
cellRange = sheet.Range.get_Item(2, 2, 7, 2)
cellRange.Style.Font.FontName = "Arial"
cellRange.Style.Font.Size = 14
cellRange.Style.HorizontalAlignment = HorizontalAlignType.Left
# 列幅を自動調整
sheet.AutoFitColumn(2)
# ファイルを保存
workbook.SaveToFile("output/SetExcelCellValue.xlsx", FileFormat.Version2016)
workbook.Dispose()
PythonでExcelセルの値を更新する
Excelセルの値を更新する際には、該当セルを取得して、前述の方法で再設定することで、セルの値を更新できます。以下は操作手順の例です:
- 必要なモジュールをインポートする:
Workbook
。 -
Workbook
オブジェクトを作成する。 -
Workbook.LoadFromFile()
メソッドでExcelファイルを読み込む。 -
Workbook.Worksheets.get_Item()
メソッドでワークシートを取得する。 -
Worksheet.Range.get_Item()
メソッドでセルを取得する。 - CellRangeクラス内のプロパティでセルの値を再設定する。
-
Workbook.SaveToFile()
メソッドでワークブックを保存する。 - リソースを解放する。
コード例
from spire.xls import Workbook
# Workbookのインスタンスを作成
workbook = Workbook()
# Excelファイルをロード
workbook.LoadFromFile("output/SetExcelCellValue.xlsx")
# ワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# セルを取得
cell = sheet.Range.get_Item(2, 2)
# セルの値を変更
cell.NumberValue = 45150
cell.NumberFormat = "[Green]#,##0;[RED]-#,##0"
# ワークブックを保存
workbook.SaveToFile("output/UpdateExcelCellValue.xlsx")
workbook.Dispose()
PythonでExcelセルの値を取得する
CellRange.Value
プロパティを使うことで、セルの値を直接取得できます。以下はExcelセルの値を読み取る操作手順の例です:
- 必要なモジュールをインポートする:
Workbook
。 -
Workbook
オブジェクトを作成する。 -
Workbook.LoadFromFile()
メソッドでExcelファイルを読み込む。 -
Workbook.Worksheets.get_Item()
メソッドでワークシートを取得する。 - 指定範囲内のセルをループし、
CellRange.Value
プロパティでセルの値を取得する。 - 結果を出力する。
コード例
from spire.xls import Workbook
# Workbookのインスタンスを作成
workbook = Workbook()
# Excelファイルをロード
workbook.LoadFromFile("output/SetExcelCellValue.xlsx")
# ワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# 第2列の第2行から第8行のセルをループ
for i in range(2, 8):
# セルを取得
cell = sheet.Range.get_Item(i, 2)
# セルの値を取得
value = cell.Value
# 値を出力
print(value)
workbook.Dispose()
この記事では、Pythonを使用してExcelセルの値を設定、更新、および取得する方法について説明しました。