0Pricing
Python Academy · レッスン

ワークブックの読み込み

Excelファイルを開いて読み取ります

「ワークブックの読み込み」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。

Python から Excel を扱う

openpyxl は、最新の Excel ファイル(.xlsx 形式)を読み書きするための標準ライブラリです。通常は手作業で行うスプレッドシート操作を、Python で自動化できます。

このレッスンでは、ファイルを開いて内容を読み取る方法に焦点を当てます。

ワークブックのモデル

Excel ファイルには明確な階層があり、openpyxl もそれを反映しています。

  • ワークブック ファイル全体
  • ワークシート ファイル内の 1 つのタブ
  • セル 値を持つ A1 形式の 1 つのボックス

ワークブックからワークシート、そしてセルへと移動します。

ファイルを開く

load_workbook('data.xlsx') はファイルを読み込み、ワークブックを返します。読み取り専用で大きなファイルを扱う場合は、read_only=True を渡すと行をストリーミングしてメモリを節約できます。

数式のテキストではなく、数式セルの最後に計算された結果を読み取るには、data_only=True を使います。

シートを選択する

wb.active は現在選択されているシートを返します。wb['Sheet1'] は名前で選択し、wb.sheetnames はすべてのタブを一覧表示します。適切なシートを選ぶことが、あらゆる読み取り処理の最初のステップです。

sheetnames = ['Summary', 'Q1', 'Q2', 'Q3']
wanted = 'Q2'
if wanted in sheetnames:
    print('Selecting sheet:', wanted)
else:
    print('Not found, defaulting to', sheetnames[0])

1 つのセルを読み取る

Excel のアドレスを使ってセルにアクセスできます。たとえば ws['A1'].value、または ws.cell(row=1, column=1).value のように行番号と列番号でも指定できます。.value 属性には実際のデータが格納されており、テキスト、数値、日付、または None のいずれかになります。

列の文字と番号

Excel の列は文字(A、B、...、Z、AA)で表されますが、openpyxl では 1 から始まる番号も使います。両者の変換が必要になることもあります。ここでは、文字から列番号を取得します。

def col_to_num(letters):
    num = 0
    for ch in letters.upper():
        num = num * 26 + (ord(ch) - ord('A') + 1)
    return num

for c in ['A', 'B', 'Z', 'AA']:
    print(c, '->', col_to_num(c))

行を反復処理する

ws.iter_rows(values_only=True) は、値のタプルとして各行を返します。これは表を読み取る最もすっきりした方法です。通常、最初の行はヘッダーです。

他の iterable と同じように、行をループ処理できます。

rows = [
    ('Name', 'Age', 'City'),
    ('Ada', 36, 'London'),
    ('Linus', 54, 'Helsinki'),
]
header = rows[0]
for record in rows[1:]:
    print(dict(zip(header, record)))

使用範囲を見つける

ws.max_row と ws.max_column から、データがどこまで広がっているかがわかります。ws.dimensions は、'A1:C10' のような範囲文字列を返します。これらを使うと、空のセルを読み取らずに済みます。

範囲を読み取る

ワークシートはスライスできます。ws['A1:C3'] は、セルオブジェクトの行タプルを含むタプルを返します。シートのすべての行ではなく、一部だけが必要な場合に便利です。

空のセルを扱う

空のセルは None を返します。実際のスプレッドシートは整然としていないことが多いため、読み取り時には、たとえばデフォルト値に置き換えるなどして、欠損値に対処してください。これにより、後続の処理でのクラッシュを防げます。

raw_row = ('Ada', None, 'London')
clean = [v if v is not None else 'N/A' for v in raw_row]
print(clean)

複数のシートをまたいで読み取る

ワークブックでは、たとえば月ごとに 1 つずつタブを用意するなど、データを複数のタブに分けることがあります。wb.sheetnames をループし、各シートを選択して、同じロジックで読み取ります。元のシートを追跡できるように、各行にシート名を付けてください。

このパターンを使うと、多数のタブを 1 つの統合データセットにまとめられます。

クイックチェック

読み取りのスキルを確認しましょう。

まとめ

これで Excel ファイルを読み取れるようになりました。

  • 階層は ワークブック > ワークシート > セル
  • read_only と data_only オプションを指定した load_workbook
  • wb.active、wb['Name']、wb.sheetnames でシートを選択する
  • .value、iter_rows(values_only=True) で読み取り、max_row / max_column を確認する
  • 空のセルに対しては None に備える

よくある質問

「ワークブックの読み込み」レッスンは無料ですか?

はい。「ワークブックの読み込み」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。

「ワークブックの読み込み」で何を学びますか?

Excelファイルを開いて読み取ります ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Python Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ワークブックの読み込み」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPython Academyレッスンでコードを書いて実行できますか?

はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ワークブックの読み込み
  2. セルの書き込みとスタイル設定
  3. 数式とグラフ
  4. レポートのバッチ処理
← Python Academyに戻る