【Python】Excelのシートの行数・列数を取得する方法

この記事では、Pythonを使ってExcelファイルのシートの行数と列数を取得する方法を紹介します。

初心者の方でも理解しやすいように、必要なライブラリのインストール方法から具体的なコード例まで、ステップバイステップで解説します。

openpyxlとpandasという2つのライブラリを使った方法を詳しく説明し、それぞれの利点と欠点についても触れます。

目次から探す

準備

Pythonを使ってExcelのシートの行数・列数を取得するためには、いくつかのライブラリをインストールし、インポートする必要があります。

ここでは、代表的なライブラリであるopenpyxlとpandasを使用します。

それぞれのライブラリのインストール方法とインポート方法について詳しく説明します。

必要なライブラリのインストール

まずは、必要なライブラリをインストールしましょう。

Pythonのパッケージ管理ツールであるpipを使用して、簡単にインストールすることができます。

openpyxl

openpyxlは、Excelファイル(.xlsx形式)を読み書きするためのライブラリです。

以下のコマンドを実行してインストールします。

pip install openpyxl

pandas

pandasは、データ操作や解析を行うための強力なライブラリです。

Excelファイルの読み込みやデータフレームの操作が簡単に行えます。

以下のコマンドを実行してインストールします。

pip install pandas

ライブラリのインポート

ライブラリをインストールしたら、次にPythonスクリプト内でそれらをインポートします。

これにより、ライブラリの機能を使用することができるようになります。

openpyxlのインポート

openpyxlを使用するためには、以下のようにインポートします。

import openpyxl

pandasのインポート

pandasを使用するためには、以下のようにインポートします。

import pandas as pd

これで、openpyxlとpandasの準備が整いました。

次のステップでは、これらのライブラリを使用してExcelのシートの行数・列数を取得する方法について詳しく説明します。

openpyxlを使用した方法

openpyxlの基本的な使い方

openpyxlは、PythonでExcelファイルを操作するための強力なライブラリです。

Excelファイルの読み書き、シートの操作、セルの編集など、さまざまな機能を提供しています。

まずは、openpyxlを使ってExcelファイルを操作する基本的な方法を見ていきましょう。

ワークブックの読み込み

openpyxlを使用してExcelファイルを読み込むには、まずワークブック(Excelファイル全体)を読み込む必要があります。

以下のコード例では、sample.xlsxという名前のExcelファイルを読み込んでいます。

from openpyxl import load_workbook
# Excelファイルを読み込む
workbook = load_workbook('sample.xlsx')

シートの選択

ワークブックを読み込んだ後、特定のシートを選択する必要があります。

以下のコード例では、Sheet1という名前のシートを選択しています。

# シートを選択する
sheet = workbook['Sheet1']

行数の取得方法

openpyxlを使用してシートの行数を取得するには、max_rowプロパティを使用します。

このプロパティは、シート内の最大行数を返します。

max_rowプロパティの使用

以下のコード例では、選択したシートの行数を取得しています。

# シートの行数を取得する
row_count = sheet.max_row
print(f'行数: {row_count}')

列数の取得方法

同様に、シートの列数を取得するには、max_columnプロパティを使用します。

このプロパティは、シート内の最大列数を返します。

max_columnプロパティの使用

以下のコード例では、選択したシートの列数を取得しています。

# シートの列数を取得する
column_count = sheet.max_column
print(f'列数: {column_count}')

実際のコード例

ここまでの説明を踏まえて、openpyxlを使用してExcelシートの行数と列数を取得する完全なコード例を示します。

行数・列数を取得するサンプルコード

以下のコードは、sample.xlsxというExcelファイルのSheet1シートの行数と列数を取得し、表示するものです。

from openpyxl import load_workbook
# Excelファイルを読み込む
workbook = load_workbook('sample.xlsx')
# シートを選択する
sheet = workbook['Sheet1']
# シートの行数を取得する
row_count = sheet.max_row
print(f'行数: {row_count}')
# シートの列数を取得する
column_count = sheet.max_column
print(f'列数: {column_count}')

このコードを実行すると、sample.xlsxSheet1シートの行数と列数がコンソールに表示されます。

これで、openpyxlを使用してExcelシートの行数と列数を取得する方法が理解できたと思います。

次に、pandasを使用した方法について説明します。

pandasを使用した方法

pandasの基本的な使い方

pandasは、データ操作や分析に特化したPythonのライブラリです。

特に、データフレーム(DataFrame)というデータ構造を使用して、データの読み込み、操作、解析を簡単に行うことができます。

Excelファイルの読み込みも非常に簡単で、数行のコードで行数や列数を取得することができます。

Excelファイルの読み込み

まず、pandasを使用してExcelファイルを読み込みます。

pandasにはread_excelという関数があり、これを使ってExcelファイルをデータフレームとして読み込むことができます。

import pandas as pd
# Excelファイルの読み込み
df = pd.read_excel('example.xlsx')

シートの選択

read_excel関数では、特定のシートを指定して読み込むこともできます。

デフォルトでは最初のシートが読み込まれますが、sheet_name引数を使ってシート名を指定することができます。

# 特定のシートを読み込む
df = pd.read_excel('example.xlsx', sheet_name='Sheet1')

行数の取得方法

pandasのデータフレームにはshapeというプロパティがあり、これを使って行数と列数を取得することができます。

shapeプロパティはタプル(行数, 列数)を返します。

# 行数の取得
row_count = df.shape[0]
print(f'行数: {row_count}')

shapeプロパティの使用

shapeプロパティはデータフレームの形状を示すために非常に便利です。

行数を取得するためには、shape[0]を使用し、列数を取得するためにはshape[1]を使用します。

列数の取得方法

行数と同様に、列数もshapeプロパティを使って簡単に取得できます。

# 列数の取得
column_count = df.shape[1]
print(f'列数: {column_count}')

実際のコード例

ここまでの説明を踏まえて、pandasを使用してExcelファイルの行数と列数を取得する完全なコード例を示します。

行数・列数を取得するサンプルコード

以下に、pandasを使用してExcelファイルの行数と列数を取得するサンプルコードを示します。

import pandas as pd
# Excelファイルの読み込み
df = pd.read_excel('example.xlsx', sheet_name='Sheet1')
# 行数の取得
row_count = df.shape[0]
print(f'行数: {row_count}')
# 列数の取得
column_count = df.shape[1]
print(f'列数: {column_count}')

このコードを実行すると、指定したExcelシートの行数と列数がコンソールに表示されます。

例えば、行数が100で列数が10のシートの場合、以下のように出力されます。

行数: 100
列数: 10

これで、pandasを使用してExcelファイルの行数と列数を取得する方法についての説明は完了です。

pandasはデータ操作に非常に強力なツールであり、Excelファイルの操作も簡単に行うことができます。

どちらの方法を選ぶべきか

PythonでExcelのシートの行数・列数を取得する方法として、openpyxlとpandasの2つのライブラリを紹介しました。

それぞれの方法には利点と欠点があり、用途や状況に応じて使い分けることが重要です。

ここでは、openpyxlとpandasの利点と欠点について詳しく解説します。

openpyxlの利点と欠点

メモリ効率

openpyxlはExcelファイルを直接操作するため、メモリ効率が良いです。

特に大規模なExcelファイルを扱う場合、pandasよりもメモリ消費が少なくて済むことが多いです。

これは、openpyxlが必要な部分だけを読み込むことができるためです。

機能の豊富さ

openpyxlはExcelファイルの読み書きに特化しており、セルの書式設定やグラフの作成、画像の挿入など、Excelの多くの機能をサポートしています。

そのため、Excelファイルの細かい操作が必要な場合にはopenpyxlが適しています。

欠点

一方で、openpyxlはデータの操作や分析には向いていません。

データのフィルタリングや集計、統計分析などを行う場合には、pandasの方が適しています。

また、openpyxlは操作がやや複雑で、コードが長くなりがちです。

pandasの利点と欠点

データ操作の簡便さ

pandasはデータ操作や分析に特化したライブラリであり、Excelファイルの読み込みも簡単に行えます。

データフレームを使ってデータを操作するため、フィルタリングや集計、統計分析などが非常に簡単に行えます。

特に、データの前処理やクリーニングが必要な場合にはpandasが非常に便利です。

パフォーマンス

pandasは大量のデータを扱う場合にパフォーマンスが低下することがあります。

特に、メモリに全てのデータを読み込むため、大規模なExcelファイルを扱う場合にはメモリ消費が大きくなります。

そのため、メモリ効率が重要な場合にはopenpyxlの方が適しています。

欠点

また、pandasはExcelファイルの細かい操作には向いていません。

セルの書式設定やグラフの作成、画像の挿入など、Excelの特定の機能を操作する場合にはopenpyxlの方が適しています。

まとめ

openpyxlとpandasのどちらを選ぶべきかは、具体的な用途や状況によります。

Excelファイルの細かい操作が必要な場合やメモリ効率が重要な場合にはopenpyxlが適しています。

一方、データの操作や分析が主な目的である場合にはpandasが適しています。

両方のライブラリの特徴を理解し、適切に使い分けることで、効率的にExcelファイルを操作することができます。

目次から探す