MENU
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
カテゴリー
  • IT関連 (623)
    • Bootstrap (2)
    • クラウド (4)
    • サーバー技術 (185)
    • ストレージ (7)
      • NetApp (7)
    • ネットワーク技術 (91)
      • Cisco (36)
      • Juniper (18)
      • 負荷分散装置 (17)
    • パソコン関連 (92)
      • MAC (25)
      • Windows (54)
    • プログラミング (154)
      • Ansible (11)
      • C言語 (23)
      • Python (111)
        • Django (20)
    • 仮想化 (88)
      • Docker (63)
      • VMware (23)
  • VPS (200)
    • ABLENET VPS (16)
    • Amazon Lightsail(VPS) (2)
    • ConoHaVPS (37)
    • mixhostVPS (4)
    • WebARENAIndigo (16)
    • XServerVPS (34)
    • お名前.com VPS (12)
    • さくらのVPS (24)
    • カゴヤクラウドVPS (13)
    • シンVPS (7)
  • レンタルサーバー (56)
    • エックスサーバー (38)
  • 光回線 (8)
  • 技術スキルアップ開発・学習 (7)
    • Envader (2)
    • RareTECH (2)
    • Udemy (3)
もう現役20年超えましたー。経験値ならだれにも負けないエンジニア技術ブログ
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
  1. ホーム
  2. IT関連
  3. プログラミング
  4. Python
  5. 【Python】openpyxlの「offset」を利用したエクセルでコピー・書き込みする方法

【Python】openpyxlの「offset」を利用したエクセルでコピー・書き込みする方法

2020 5/29
Python
2020年3月6日2020年5月29日

Pythonを使ったエクセルシートへのコピー・書き込みですが、対象の文字列を抽出して、その文字列周辺のセルデータを取得し、別シートのセルに書き込むプログラムを作成しました。

前回、セル周辺のデータを出力するプログラムの続きとなります。

あわせて読みたい
【Python】openpyxlの「offset」でエクセルのセルの周辺データを取得するプログラム Pythonでエクセルの特定の文字列のセルの周辺データを取得するためのプログラムを作成しました。 例えば、以下のように、「東京」というセルデータの右側のセルのデータ...

目次
安くて高速!高性能VPSで快適開発!
最速5分でサーバー構築
>>>こちらをチェック

エンジニア必見! 技術力を伸ばすVPS徹底比較
>>>VPS比較

「openpyxl」でセル周辺のデータを抽出・コピーし書き込む方法

今回は以下のエクセルシートから「interface」という文字列を抽出し、その右隣りのデータを「offset」で抽出し、別シートに書き込むプログラムとなります。

以下では、データを読み取るエクセルシートと、新規でデータを書き込むエクセルシートを作成し、抽出データを書き込みます。

※ parameter_05_ok.py

import openpyxl as px

wb = px.load_workbook('excel-data.xlsx')

wb2 = px.Workbook('data.xlsx')
ws2 = wb2.create_sheet(title='interface')
wb2.save('data.xlsx')

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

MIN_COL = 2
MIN_ROW = 2

MAX_COL = 2
MAX_ROW = 180


# 範囲データを順次処理
for row in ws.iter_rows(min_col=MIN_COL, min_row=MIN_ROW, max_col=MAX_COL, max_row=MAX_ROW):
    for cell in row:
        # 該当セルの値取得
        cell_value = cell.value
        o = cell.offset(0,1)
        offset = o.value
        
        
        # 該当セルに値が存在する場合表示
        if 'interface' in cell_value:
            print(cell.coordinate, cell_value, offset)

            ws2.append({'C': cell_value, 'D': offset})

wb2.save('data.xlsx')
# ロードしたExcelファイルを閉じる
wb.close()
wb2.close()
  • 5-7行目:新規でエクセルファイルとシートを作成し保存
  • 13-17行目:読み取りをするセルの範囲を指定(今回は’interface’という文字列を抽出する範囲指定)
  • 21-24行目:範囲指定した値の取得
  • 25-26行目:指定範囲の値の右隣りの値を「offset」で取得
  • 29-32行目:「interface」という文字列を出力。また、右隣りのセルデータも出力。さらに別のエクセルシートに出力結果を書き込む
  • 34行目:書き込んだファイルを保
  • 存

実行結果

上記で作成したプログラムの実行結果は以下となります。

ちょっと行が長いので一部抜粋

PS C:> python .parameter_05_ok.py
....
B63 interface Ethernet1/1
B64 interface Ethernet1/2
B65 interface Ethernet1/3
B66 interface Ethernet1/4
B67 interface Ethernet1/5
B68 interface Ethernet1/6
B69 interface Ethernet1/7
B70 interface Ethernet1/8
B71 interface Ethernet1/9
B72 interface Ethernet1/10
B73 interface Ethernet1/11
B74 interface Ethernet1/12
.....
PS C:> 

別ファイルのエクセルシートに抽出したデータが書き込まれています。

課題

別のエクセルシートへの書き込みはできましたが、書き込みを開始するセルの指定ができていません。
この課題をクリアすれば、うまいことパラメータシートを作成することができるんですけどね。

一人でのプログラミングは大変ですねw

エンジニアスキルをアップする勉強法

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

あわせて読みたい
現役エンジニアがおすすめするVPSレンタルサーバ比較(高速SSD限定) 格安VPS比較(2025年最新版)

Python
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする コメントをキャンセル

email confirm*

post date*

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



検索
カテゴリー
新着記事
  • XServerVPS アニメ風 男の子 プログラミングをしている VPSを利用している 楽しそうにしている
    XServerVPSで証明書(SSL)を取得する方法
    2025年3月24日
    XServerVPS
  • レンタルサーバ アニメ風 女の子 楽しんでパソコンをしている 目がキラキラ
    WordPressがレンタルサーバよりVPSで利用する方がおすすめの理由
    2025年3月19日
    VPS
  • VPS レンタルサーバー アニメ風 女の子 プログラミングをしている VPSを利用している 楽しそうにしている
    VPSとクラウドの違いとは?初心者向けにわかりやすく解説
    2025年3月5日
    VPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSはWindows serverを利用できない。その理由と利用できるOSは?
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSでゲームを利用する環境はあるのか
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSのサイトの表示速度は他社に比べて早いのか?
    2025年3月4日
    シンVPS
目次
目次