Pythonのライブラリ「openpyxl」を利用し、エクセルから指定の列のセルデータを取得するプログラムを書きました。
参考にしてください。
「openpyxl」エクセルの指定の列を取得するプログラム
以下のようなエクセルにおいて、あるれるのセルの列を抜粋して取得したい場合があります。
今回は3列目の2行目から9行目までのセル「interface」のデータを取得します。
以下はプログラムの例となります。
列を指定して取得する際は「range関数」を使用する
今回のプログラムですが、列で指定したところから抜粋したいので以下のようなプログラムを作成します。
※ for_test01.py
1 2 3 4 5 6 7 | 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行目までのセルデータを出力
※実行結果
01 02 03 04 05 06 07 08 09 10 11 12 | 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行をカウントします。
1 2 3 4 5 6 7 | 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エンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメント