【Python】openpyxlでrangeとoffsetを利用した出力プログラム

Pythonで「openpyxl」ライブラリを利用し、「range」と「offset」を利用したエクセルデータの出力プログラムを作成しました。

前回、「offset」を利用したデータ出力を「range」を利用して簡単なプログラムにしました。

「openpyxl」で「range」と「offset」を利用したエクセルデータを出力

以下では、「openpyxl」ライブラリを使用し、対象のエクセルデータとその右隣りのデータを抽出し出力するプログラムとなります。

※ parameter_06-1.py

import openpyxl as px

wb = px.load_workbook('excel-data.xlsx')
ws = wb["Sheet1"]  # 入力のシート

offset = 1
for i in range(1,200):
    copy1 = ws.cell(row = i, column = 2).value
    copy2 = ws.cell(row = i, column = 2 + offset).value
    print(copy1,copy2)
  • 3-4行目:対象のエクセルシートを読み込み
  • 6行目:offset関数を定義
  • 7行目:for文でrangeを使用
  • 8-9行目:rangeで範囲を抽出、さらにoffsetで対象データの右隣りのデータを抽出
  • 10行目:抽出したデータを出力

※ 出力結果

PS C:> python .parameter_06-1.py
......
interface Ethernet1/1
interface Ethernet1/2
interface Ethernet1/3
interface Ethernet1/4
interface Ethernet1/5
interface Ethernet1/6
interface Ethernet1/7
interface Ethernet1/8
interface Ethernet1/9
interface Ethernet1/10
......

データ抽出をまとめて出力

以下では一行でまとめてデータを抽出するプログラムとなります。

※ parameter_06-1.py

import openpyxl as px

wb = px.load_workbook('excel-data.xlsx')
ws = wb["Sheet1"]  # 入力のシート

offset = 1
for i in range(1,200):
    copy1 = ws.cell(row = i, column = 2).value, ws.cell(row = i, column = 2 + offset).value
    print(copy1)

  • 8行目:「,」カンマを使用し、データ抽出を一行でまとめて抽出

※ 出力結果

PS C:> python .parameter_06-1.py
......
('interface', 'Ethernet1/1')
('interface', 'Ethernet1/2')
('interface', 'Ethernet1/3')
('interface', 'Ethernet1/4')
('interface', 'Ethernet1/5')
('interface', 'Ethernet1/6')
('interface', 'Ethernet1/7')
('interface', 'Ethernet1/8')
('interface', 'Ethernet1/9')
('interface', 'Ethernet1/10')
......

以上が「range」と「offset」を利用したエクセルデータの出力プログラムとなります。




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

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

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

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



コメントを残す

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

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

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