【Python】openpyxlを使ったエクセルの指定の列を取得するプログラム

Pythonのライブラリ「openpyxl」を利用し、エクセルから指定の列のセルデータを取得するプログラムを書きました。

参考にしてください。

「openpyxl」エクセルの指定の列を取得するプログラム

以下のようなエクセルにおいて、あるれるのセルの列を抜粋して取得したい場合があります。

今回は3列目の2行目から9行目までのセル「interface」のデータを取得します。
以下はプログラムの例となります。

列を指定して取得する際は「range関数」を使用する

今回のプログラムですが、列で指定したところから抜粋したいので以下のようなプログラムを作成します。

※ for_test01.py

import openpyxl

wb =openpyxl.load_workbook('excel-data_find.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
 
for i in range(2,10):
    print(sheet.cell(row=i, column=3).value)
  • 1行目:openpyxlをインポート
  • 3行目:エクセルを読み取り
  • 4行目:シートの指定
  • 6行目:2行目から9行目までのデータを取得するrange関数を指定
  • 7行目:3列目の2行目から9行目までのセルデータを出力

※実行結果

PS C:\Python\01_tkinter_SSHテスト> python .\for_test01.py
.\for_test01.py:5: DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).
  sheet = wb.get_sheet_by_name('Sheet1')
interface
interface
interface
interface
interface
interface
interface
interface
interface

実行結果により、指定のセルデータを出力させました。

関数に数値を追加

例えば、今回の関数に対して、もう10行下からカウントしたい場合などは「i+10」などするとrange関数のはじめの数値から+10行追加されたところから9行をカウントします。

import openpyxl

wb =openpyxl.load_workbook('excel-data_find.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
 
for i in range(2,10):
    print(sheet.cell(row=i+10, column=3).value)

やり方によっていろいろとカスタマイズができるので、メモっておきます。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!