PythonでExcelワークシート内のテーブルを作成、修正、削除する方法

データ分析や自動化処理の作業において、Excelは非常に強力なツールとして広く利用されています。Pythonを使用してExcelワークシート内のテーブルを操作することで、作業効率を大幅に向上させることができます。テーブル（Table）はExcelにおける重要な構造の1つで、特別なセル範囲として機能し、データの整理や表示を助けるだけでなく、便利なデータのフィルタリング、並べ替え、分析機能を提供します。Pythonを活用することで、**Excelワークシート内で簡単にテーブルを作成、修正、または削除**でき、バッチ処理、動的更新、およびカスタムレポートの自動生成を実現できます。本記事では、**Pythonを使ったExcelワークシート内のテーブルの作成、修正、および削除方法**について解説します。

- **[PythonでExcelワークシート内にテーブルを作成する](#pythonでexcelワークシート内にテーブルを作成する)**
- **[PythonでExcelワークシート内のテーブルを修正する](#pythonでexcelワークシート内のテーブルを修正する)**
- **[PythonでExcelワークシート内のテーブルを削除する](#pythonでexcelワークシート内のテーブルを削除する)**

この記事で紹介する方法には、[Spire.XLS for Python](https://jp.e-iceblue.com/introduce/spire-xls-for-python.html)ライブラリを使用します。PyPIで以下のコマンドを実行してインストールしてください：  
`pip install spire.xls`

[無料ライセンスの申請はこちら](https://www.e-iceblue.com/TemLicense.html)

---

## PythonでExcelワークシート内にテーブルを作成する

`Worksheet.ListObjects.Create(string: tableName, CellRange: cellRange)`メソッドを使用することで、テーブル名とセル範囲を指定して、Excelワークシート内に直接テーブルを作成できます。以下の手順で操作を行います：

1. 必要なモジュールをインポートします：`Workbook`および`TableBuiltInStyles`（内蔵テーブルスタイルを適用するため）。
2. `Workbook`クラスのインスタンスを作成します。
3. `Workbook.LoadFromFile()`メソッドを使用して、Excelファイルを読み込みます。
4. `Workbook.Worksheets.get_Item()`メソッドを使用して、指定のワークシートを取得します。
5. `Worksheet.Range.get_Item()`メソッドを使用して、テーブル作成用のセル範囲を取得します。
6. `Worksheet.ListObjects.Create(string: tableName, CellRange: cellRange)`メソッドを使用して、テーブルを作成します。
7. 必要に応じてテーブルのフォーマットを設定します。
8. `Workbook.SaveToFile()`メソッドを使用して変更を保存します。
9. リソースを解放します。

**コード例**
```python
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ワークシート内にテーブルを作成](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/ae7af70d-b515-6727-dd0d-28a3bc53b03a.png)

---

## PythonでExcelワークシート内のテーブルを修正する

`Worksheet.ListObjects.get_Item()`メソッドを使用して、インデックスを基にワークシート内のテーブルオブジェクトを取得し、そのプロパティを利用して修正を行います。たとえば、テーブルのセル範囲、ヘッダーの表示設定、テーブル名などを変更できます。以下の手順で操作を行います：

1. 必要なモジュールをインポートします：`Workbook`および`TableBuiltInStyles`（内蔵テーブルスタイルを変更するため）。
2. `Workbook`クラスのインスタンスを作成します。
3. `Workbook.LoadFromFile()`メソッドを使用して、Excelファイルを読み込みます。
4. `Workbook.Worksheets.get_Item()`メソッドを使用して、指定のワークシートを取得します。
5. `Worksheet.ListObjects.get_Item()`メソッドを使用して、ワークシート内のテーブルを取得します。
6. テーブルのプロパティを使用して、必要な修正を行います。
7. `Workbook.SaveToFile()`メソッドを使用して変更を保存します。
8. リソースを解放します。

**コード例**
```python
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ワークシート内のテーブルを修正](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/4c0e7271-69de-4a9c-c7d7-6b36d08e123f.png)

---

## PythonでExcelワークシート内のテーブルを削除する

`Worksheet.ListObjects.RemoveAt()`メソッドを使用すると、インデックスを指定してExcelワークシート内のテーブルを削除できます。この操作によって、テーブルは通常のセル範囲に変換され、テーブルのフォーマットも削除されます。以下の手順で操作を行います：

1. 必要なモジュールをインポートします：`Workbook`。
2. `Workbook`クラスのインスタンスを作成します。
3. `Workbook.LoadFromFile()`メソッドを使用して、Excelファイルを読み込みます。
4. `Worksheet.ListObjects.RemoveAt()`メソッドを使用して、インデックスを指定してテーブルを削除します。
5. `Workbook.SaveToFile()`メソッドを使用して変更を保存します。
6. リソースを解放します。

**コード例**
```python
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ワークシート内のテーブルを削除](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/ef1a2b3f-2c9e-4ab3-5616-3da27c5e70ac.png)

---

この記事では、Pythonを使ってExcelワークシート内のテーブルを作成、修正、および削除する方法について説明しました。