データ分析や自動化処理の作業において、Excelは非常に強力なツールとして広く利用されています。Pythonを使用してExcelワークシート内のテーブルを操作することで、作業効率を大幅に向上させることができます。テーブル(Table)はExcelにおける重要な構造の1つで、特別なセル範囲として機能し、データの整理や表示を助けるだけでなく、便利なデータのフィルタリング、並べ替え、分析機能を提供します。Pythonを活用することで、Excelワークシート内で簡単にテーブルを作成、修正、または削除でき、バッチ処理、動的更新、およびカスタムレポートの自動生成を実現できます。本記事では、Pythonを使ったExcelワークシート内のテーブルの作成、修正、および削除方法について解説します。
この記事で紹介する方法には、Spire.XLS for Pythonライブラリを使用します。PyPIで以下のコマンドを実行してインストールしてください:
pip install spire.xls
PythonでExcelワークシート内にテーブルを作成する
Worksheet.ListObjects.Create(string: tableName, CellRange: cellRange)
メソッドを使用することで、テーブル名とセル範囲を指定して、Excelワークシート内に直接テーブルを作成できます。以下の手順で操作を行います:
- 必要なモジュールをインポートします:
Workbook
およびTableBuiltInStyles
(内蔵テーブルスタイルを適用するため)。 -
Workbook
クラスのインスタンスを作成します。 -
Workbook.LoadFromFile()
メソッドを使用して、Excelファイルを読み込みます。 -
Workbook.Worksheets.get_Item()
メソッドを使用して、指定のワークシートを取得します。 -
Worksheet.Range.get_Item()
メソッドを使用して、テーブル作成用のセル範囲を取得します。 -
Worksheet.ListObjects.Create(string: tableName, CellRange: cellRange)
メソッドを使用して、テーブルを作成します。 - 必要に応じてテーブルのフォーマットを設定します。
-
Workbook.SaveToFile()
メソッドを使用して変更を保存します。 - リソースを解放します。
コード例
from spire.xls import Workbook, TableBuiltInStyles
# Workbookのインスタンスを作成
workbook = Workbook()
# Excelファイルをロード
workbook.LoadFromFile("Sample.xlsx")
# ワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# テーブルのセル範囲を取得
cellRange = sheet.Range.get_Item("A1:E6")
# テーブルを作成
table = sheet.ListObjects.Create("Table1", cellRange)
# テーブルをフォーマット
table.BuiltInTableStyle = TableBuiltInStyles.TableStyleLight17
# ワークブックを保存
workbook.SaveToFile("output/CreateTableExcel.xlsx")
workbook.Dispose()
PythonでExcelワークシート内のテーブルを修正する
Worksheet.ListObjects.get_Item()
メソッドを使用して、インデックスを基にワークシート内のテーブルオブジェクトを取得し、そのプロパティを利用して修正を行います。たとえば、テーブルのセル範囲、ヘッダーの表示設定、テーブル名などを変更できます。以下の手順で操作を行います:
- 必要なモジュールをインポートします:
Workbook
およびTableBuiltInStyles
(内蔵テーブルスタイルを変更するため)。 -
Workbook
クラスのインスタンスを作成します。 -
Workbook.LoadFromFile()
メソッドを使用して、Excelファイルを読み込みます。 -
Workbook.Worksheets.get_Item()
メソッドを使用して、指定のワークシートを取得します。 -
Worksheet.ListObjects.get_Item()
メソッドを使用して、ワークシート内のテーブルを取得します。 - テーブルのプロパティを使用して、必要な修正を行います。
-
Workbook.SaveToFile()
メソッドを使用して変更を保存します。 - リソースを解放します。
コード例
from spire.xls import Workbook, TableBuiltInStyles
# Workbookのインスタンスを作成
workbook = Workbook()
# Excelファイルをロード
workbook.LoadFromFile("output/CreateTableExcel.xlsx")
# 最初のワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# 最初のテーブルを取得
table = sheet.ListObjects.get_Item(0)
# IListObjectクラスのプロパティを使ってテーブルを変更
table.Location = sheet.Range.get_Item("A1:C6")
table.DisplayHeaderRow = False
table.BuiltInTableStyle = TableBuiltInStyles.TableStyleDark5
table.Name = "NewTable"
# ワークブックを保存
workbook.SaveToFile("output/ModifyTableExcel.xlsx")
workbook.Dispose()
PythonでExcelワークシート内のテーブルを削除する
Worksheet.ListObjects.RemoveAt()
メソッドを使用すると、インデックスを指定してExcelワークシート内のテーブルを削除できます。この操作によって、テーブルは通常のセル範囲に変換され、テーブルのフォーマットも削除されます。以下の手順で操作を行います:
- 必要なモジュールをインポートします:
Workbook
。 -
Workbook
クラスのインスタンスを作成します。 -
Workbook.LoadFromFile()
メソッドを使用して、Excelファイルを読み込みます。 -
Worksheet.ListObjects.RemoveAt()
メソッドを使用して、インデックスを指定してテーブルを削除します。 -
Workbook.SaveToFile()
メソッドを使用して変更を保存します。 - リソースを解放します。
コード例
from spire.xls import Workbook, TableBuiltInStyles
# Workbookのインスタンスを作成
workbook = Workbook()
# Excelファイルをロード
workbook.LoadFromFile("output/CreateTableExcel.xlsx")
# 最初のワークシートを取得
sheet = workbook.Worksheets.get_Item(0)
# ワークシートからテーブルを削除
sheet.ListObjects.RemoveAt(0)
# ワークブックを保存
workbook.SaveToFile("output/RemoveTableExcel.xlsx")
workbook.Dispose()
この記事では、Pythonを使ってExcelワークシート内のテーブルを作成、修正、および削除する方法について説明しました。