Excelのスプレッドシートを扱っていると、不要な行や列を削除したくなることがあります。もしプログラムで削除を自動化したいのであれば、Pythonを使ってExcelの行や列を削除する以下の3つの方法を参考にしてください:
Python Excelライブラリ
上記の方法は、Spire.XLS for Python ライブラリの助けを借りて実現されているので、まずpipコマンドを使ってライブラリをインストールする必要があります。
pip install Spire.XLS
使用されるクラスとメソッド
インストール後、Excelから行や列を削除するためのSpire.XLS for Pythonライブラリが提供するクラスやメソッドを簡単に見てみましょう:
-
Workbook
クラス:ワークブックを表します。 -
Worksheet
クラス: ワークシートを表します。 -
Worksheet.DeleteRow(rowIndex)
メソッド:指定された行をインデックス単位で削除する(行インデックスは 1 から開始)。 -
Worksheet.DeleteColumn(columnIndex)
メソッド:指定された列をインデックス単位で削除する(列インデックスは 1 から開始)。 -
Worksheet.DeleteRow(startRowIndex, rowCount)
メソッド: 開始行インデックスと削除する行数を指定して、複数の行を一度に削除します。 -
Worksheet.DeleteColumn(startColumnIndex、columnCount)
メソッド: 開始列インデックスと削除する列数を指定して、複数の列を一度に削除する。 -
Worksheet.Row[rowIndex].IsBlank
プロパティ: 指定された行が空白行かどうかを判定する。 -
Worksheet.Column[columnIndex].IsBlank
プロパティ: 指定された列が空白列かどうかを判定します。
PythonでExcelの指定した行や列を削除する
from spire.xls import *
from spire.xls.common import *
# Workbookオブジェクトの作成
workbook = Workbook()
# エクセルファイルを読み込む
workbook.LoadFromFile("input.xlsx")
# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]
# ワークシートから5行目を削除する
sheet.DeleteRow(5)
# ワークシートから3列目を削除する。
sheet.DeleteColumn(3)
# 結果ファイルの保存
workbook.SaveToFile("DeleteRowColumn.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
PythonでExcelの複数の行や列を削除する
from spire.xls import *
from spire.xls.common import *
# Workbookオブジェクトの作成
workbook = Workbook()
# エクセルファイルを読み込む
workbook.LoadFromFile("input.xlsx")
# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]
# ワークシートから3行目、4行目、5行目、6行目、7行目を削除する(合計5行)
sheet.DeleteRow(3, 5)
# ワークシートから4列目と5列目を削除する
sheet.DeleteColumn(4, 2)
# 結果ファイルの保存
workbook.SaveToFile("DeleteRowsColumns.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
PythonでExcelの空白行と空白列を削除する
from spire.xls import *
from spire.xls.common import *
# Workbookオブジェクトの作成
workbook = Workbook()
# エクセルファイルを読み込む
workbook.LoadFromFile("示例.xlsx")
# 最初のワークシートを取得する
sheet = workbook.Worksheets[0]
# ワークシートから空白行を削除する
for i in range(sheet.Rows.Length - 1, -1, -1):
if sheet.Rows[i].IsBlank:
sheet.DeleteRow(i + 1)
# ワークシートから空白の列を削除する
for j in range(sheet.Columns.Length - 1, -1, -1):
if sheet.Columns[j].IsBlank:
sheet.DeleteColumn(j + 1)
# 結果ファイルの保存
workbook.SaveToFile("DeleteBlankRowColumn.xlsx", ExcelVersion.Version2016)
workbook.Dispose()
上記の3つの例では、Pythonを使ってExcelの1行や1列を削除する方法、複数の行や列を削除する方法、空白の行や列を削除する方法を示しています。さらに、Spire.XLS for PythonライブラリはExcelファイルの生成、読み込み、編集、変換もサポートしています。その他のデモはこちらをご覧ください。