[Python] Excelのセル値を別のExcelファイルに転記する方法

Python
スポンサーリンク

こんにちはーー

趣味でPythonを使ってエクセルやCSVの処理を自動化しているロペです。
冬も終わり、暖かくなってきましたね。

今回はExcelのセル値を別のExcelファイルに転記するプログラムを作成したので、記事にしました。

ググりまくってプログラムを作成しているので、誰かのブログが大変役立ちます。
この記事も誰かの役に立つことを願っています。

スポンサーリンク

作成したプログラム

↓のプログラムを作成して転記することができました。
(***の箇所は各自指定が必要です)

import openpyxl as px
import os
import glob
from openpyxl import Workbook


path_name ='./**.xlsx'
load_path_name = './***.xlsx'

for f in glob.glob(path_name):
    wb = openpyxl.Workbook()
    ws = wb.active
    ws.title='Sheet'

    wb1 = px.load_workbook(load_path_name)
    ws1 = wb1['Sheet']

    max_row = ws1.max_row+1
    min_row = ws1.min_row
    max_col = ws1.max_column+1
    min_col = ws1.min_column

    for i in range(min_row,max_row):
        for j in range(min_col, max_col):
            copy = ws1.cell(row=i,colum=j).value
            ws.cell(row=i,collumn=j,value=copy)
    wb.save(filename='.****')

概要説明

プログラムの概要を説明します。

glob

glob関数で、指定したパスのフォルダ名を取得します

for f in glob.glob(path_name):

転記先のシートを作成

openpyxで転記先のシートを作成します。

wb = openpyxl.Workbook()
ws = wb.active
ws.title=’Sheet’

.cell().valueとfor文で転記

まず、コピーしたいシートの最小列/行と最大列行番号をmax_row,min_row/max_column,min_columnで取得します。

その後for文で1セルずつコピーして、作成した新規シート(ws)に転記していきます。

    max_row = ws1.max_row+1
    min_row = ws1.min_row
    max_col = ws1.max_column+1
    min_col = ws1.min_column

    for i in range(min_row,max_row):
        for j in range(min_col, max_col):
            copy = ws1.cell(row=i,colum=j).value
            ws.cell(row=i,collumn=j,value=copy)

保存

最後に保存して終わりです。

wb.save(filename=’.****’)

以上になります。

ではまた!!

コメント

タイトルとURLをコピーしました