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 は広く使用されているツールです。Python 开発者にとって、コードを通じて効率的に Excel ワークシートを操作できることは、作業効率を大幅に向上させることができます。
Free Spire.XLS for Python は机能が强大な Excel 処理ライブラリとして、Excel ワークシートに対する各种操作を実现するための便利なインターフェースを提供しています。本文では、この无料ライブラリを使用して Excel ワークシートの一般的な操作を実现する方法について详细に说明し、追加削除非表示移动という 4 つの典型的なシーンのコード例を含めています。

环境准备

無料の Python Excel ライブラリである Free Spire.XLS for Python は、pip を通じてインストールできます。

pip install Spire.Xls.Free

注意無料版には一部制限があります(例:最大行数の制限)。簡単な Excel 文書の処理にのみ適しています

Excel ワークシートの操作具体例

1️⃣ ワークシートの追加

Excel ファイルを処理する際に、ワークシートを追加するのはよくあるニーズです。Workbook.Worksheets.Add() メソッドを使用して新しいワークシートを追加することができ、新しいワークシートに名前を指定することもできます。

例えば、次の Python コードは新しい Excel ワークブックを作成し、「売上データ」と「顾客情报」という 2 つのワークシートを追加します。

from spire.xls import *
from spire.xls.common import *

# ワークブックを作成
workbook = Workbook()
# デフォルトのワークシートを削除
workbook.Worksheets.Clear()

# 最初のワークシートを追加して名前を付ける
worksheet1 = workbook.Worksheets.Add("売上データ")
# 2番目のワークシートを追加して名前を付ける
worksheet2 = workbook.Worksheets.Add("顾客情报")

# ワークブックを保存
workbook.SaveToFile("追加.xlsx", FileFormat.Version2016)
workbook.Dispose()

一度に複数のワークシートを追加する必要がある場合は、以下を使用することができます。

# Excelドキュメントに3つの新しいワークシートを追加する
sheetCount = 3
workbook.CreateEmptySheets(sheetCount)

Addsheet.png

2️⃣ ワークシートの削除

特定のワークシートが不要になった场合、削除することができます。Free Spire.XLS for Python は、RemoveAt() メソッドと Remove() メソッドを提供しており、ワークシートのインデックスまたは名前によって削除するワークシートを指定する。

以下の Python コードは、「一时データ」という名前のワークシートを削除する方法を示しています。

from spire.xls import *
from spire.xls.common import *

# Workbook クラスのオブジェクトを作成
workbook = Workbook()
# サンプル Excel ファイルをロード
workbook.LoadFromFile("input.xlsx")

# 名前で特定のワークシートを取得し、それを削除
worksheet = workbook.Worksheets["一时データ"]
workbook.Worksheets.Remove(worksheet)

# またはインデックスによってファイルから特定のワークシートを削除
# workbook.Worksheets.RemoveAt(0)

# 结果ファイルを保存
workbook.SaveToFile("削除.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

DeleteSheet.png

3️⃣ ワークシートの非表示

特定の状况では、一部のワークシートが随意に阅覧または编集されることを望まない场合があります。その时は、ワークシートの Visibility プロパティを设定することで非表示にすることができます。2 種類の非表示モードがあります

  • WorksheetVisibility.Hidden:通常の非表示を実现します。
  • WorksheetVisibility.StrongHidden:深度の非表示を実现します。(表示するには VBA コードが必要です)

Python のサンプルコードは以下の通りです。

from spire.xls.common import *
from spire.xls import *

# Workbook クラスのオブジェクトを作成
workbook = Workbook()

# Excel ワークブックをロード
workbook.LoadFromFile("input.xlsx")

# 最初のワークシートを非表示にする
workbook.Worksheets[0].Visibility = WorksheetVisibility.Hidden

# 4番目のワークシートを深度非表示に设定する
workbook.Worksheets[3].Visibility = WorksheetVisibility.StrongHidden

# ワークブックを保存
workbook.SaveToFile("非表示.xlsx")
workbook.Dispose()

非表示を解除する场合は、以下を使用します。

# 2番目のワークシートの非表示を解除
workbook.Worksheets[1].Visibility = WorksheetVisibility.Visible

HideSheet.png

4️⃣ワークシートの移動

ワークシートの顺序を调整することで、Excel ファイルの構造をより明確にすることができます。MoveWorksheet() メソッドを使用してワークシートを移动することができ、このメソッドでは目标位置のインデックスを指定する必要があります。

例えば、インデックスが 0 のワークシートをインデックスが 2 の位置に移动するコードは以下の通りです。

from spire.xls import *
from spire.xls.common import *

# Workbook クラスのオブジェクトを作成
workbook = Workbook()
# サンプル Excel ファイルをロード
workbook.LoadFromFile("input.xlsx")

# インデックスによってファイル内の特定のワークシートを取得
sheet = workbook.Worksheets[0]

# ワークシートをファイル内の3番目の位置に移动
sheet.MoveWorksheet(2)

# 结果ファイルを保存
workbook.SaveToFile("移動.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

MoveSheet.png

おわりに

Free Spire.XLS for Python は、Python 開発者に強力な Excel 操作機能を提供しており、特に自動化されたワークシート管理作業に適しています。本文で紹介したワークシートの追加、削除、非表示、移动というコア機能を通じて、以下のことを簡単に実現できます。

  • 動的にワークシートを作成し、データを追加する
  • 不要になった古いワークシートをクリーンアップする
  • 補助的なワークシートを非表示にして、インターフェースを整頓する
  • ワークシートの順序を合理的に整理し、可用性を向上させる

これらのスキルは、特に定期的にレポートを生成するシーンにおいて、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?