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を利用したエクセルのセルとシートの範囲指定で読み取りと書き込み

【Python】openpyxlを利用したエクセルのセルとシートの範囲指定で読み取りと書き込み

2020 5/29
Python
2020年2月15日2020年5月29日

Pythonで「openpyxl」ライブラリを利用して、エクセルの「セル」の範囲指定をしたデータの読み取りと書き込みをまとめました。

なかなか、ネットに情報が乗っていないので、私が動作確認できた範囲指定のコードを紹介します。

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

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

「openpyxl」ライブラリを利用してエクセルの範囲指定とデータの「読み取り」と「書き込み」プログラム

エクセルの範囲指定を利用した読み取り、書き込みは「openpyxl」ライブラリを使用します。

今回は、エクセルのデータからから範囲指定でデータを読み取り、別シートの指定位置に貼り付けるプログラムとなります。

※ for_test00.py

import openpyxl

wb =openpyxl.load_workbook('excel-data_find.xlsx')
wb.create_sheet('interface')

sheet = wb.get_sheet_by_name('Sheet1')
sheet2 = wb.get_sheet_by_name('interface')

for i in range(1,10):
#コピー元の列を読み取り
    copy = sheet.cell(row = i, column = 4).value
#Valueに指定した値を指定先の列に書き込む
    sheet2.cell(row = i, column = 6, value = copy)

    i += 1

wb.save('data.xlsx')

print('別シート「interface」への出力完了')
  • 3行目:該当のエクセルファイルの読み取り
  • 4行目:新規に「interface」と言う名前のシートを作成
  • 6、7行目:シートの読み取り
  • 9行目:for文開始。range関数1行目〜9行目を指定
  • 11行目:4列目の1〜9行目までのデータをコピー
  • 13行目:6列目の1〜9行目まにコピーしたデータを貼り付け
  • 15行目:forで毎回1行ごとに繰り返し処理

書き込みする際に開始する行を変更する場合のコード

以下では書き込み先のエクセルシートを範囲指定して書き込みをしたい際に実施するコードとなります。
今回はコピしたデータを書き込み先のセル「G列の11行目から19行目」までに書き込みするように、関数「i」に「+10」をつけることで11行目から書き込みを開始するようになります。

import openpyxl

wb =openpyxl.load_workbook('excel-data_find.xlsx')
wb.create_sheet('interface')

sheet = wb.get_sheet_by_name('Sheet1')
sheet2 = wb.get_sheet_by_name('interface')

for i in range(1,10):
    sheet2['G5'] = 'テスト'
#コピー元の列を読み取り
    copy = sheet.cell(row = i, column = 4).value
#Valueに指定した値を指定先の列に書き込む
    sheet2.cell(row = i+10, column = 7, value = copy)

    i += 1

wb.save('data.xlsx')

print('別シートへの出力完了')
  • 3行目:該当のエクセルファイルの読み取り
  • 4行目:新規に「interface」と言う名前のシートを作成
  • 6、7行目:シートの読み取り
  • 9行目:for文開始。range関数1行目〜9行目を指定
  • 10行目:セル「G5」へ「テスト」と言う文字列データを書き込み
  • 12行目:4列目の1〜9行目までのデータをコピー
  • 14行目:6列目の11〜19行目まにコピーしたデータを貼り付け
  • 16行目:forで毎回1行ごとに繰り返し処理

※ 実行結果

PS C:> python for_test00.py
.for_test02.py:6: DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).
  sheet = wb.get_sheet_by_name('Sheet1')
.for_test02.py:7: DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).
  sheet2 = wb.get_sheet_by_name('interface')
別シートへの出力完了
PS C:> 

エクセルシートで正常に読み込み、書き込みができたことを確認

正常にプログラムが実行できた際は以下のようになります。

読み込み先のデータは以下となります。
ここから、4列目(D列)の1行目〜9行目をコピーします。

コピーしたデータを、7行目(G列)の11行目〜19行目に書き込みをします。

これで範囲指定で任意のシートセルへの読み込み書き込みをすることが可能となります。

前回、指定の文字列のデータを抽出するプログラムも書いているので参考にしてください。

あわせて読みたい
【Python】pandasを利用したエクセルで文字列を「行」で検索読み取りとデータ書き込みまで Pythonの「pandas」ライブラリを利用してエクセル内のデータから文字列検索し、該当した文字列の行を読み取りと、データの書き込みまでのプログラムを作成しました。 今...

openpyxlは今回のような範囲指定では使いやすいライブラリとなるので活用しましょう。

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

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
目次
目次